1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Các vấn đề cơ sở của khoa học máy tính: Chương 3 - Tô Oai Hùng

42 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 245,85 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3: Tổ chức máy tính cung cấp cho người học các kiến thức: Kiến trúc von Neumann, biểu diễn dữ liệu, chiều dài từ của máy tính, dạng dữ liệu nguyên, dạng dữ liệu thực, dạng ký tự, CPU/ALU, tập lệnh, bộ nhớ, nhập/xuất dữ liệu. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Ch ương 3:

TỔ CHỨC MÁY TÍNH

Trang 2

Nội Dung

1 Kiến trúc von Neumann

2 Biểu diễn dữ liệu

3 Chiều dài từ của máy tính

Trang 3

Kiến Trúc Von Neumann

Hầu hết các máy tính ngày nay hoạt động

dựa vào “kiến trúc von Neumann” Ý tưởng chính của kiến trúc này là chương trình và

dữ liệu được lưu trữ trong bộ nhớ máy tính John von Neumann đã đưa ra ý tưởng này vào năm 1945

Kiến trúc von Neumann cũng được gọi là

“máy tính có chương trình được lưu trữ -

stored program computer” Các bước (lệnh) của chương trình được lưu trữ trong bộ nhớ máy tính và chu kỳ thao tác của máy sẽ lấy bước kế tiếp (lệnh để thực thi) từ bộ nhớ, hoàn thành thao tác này và lấy bước kế tiếp

Trang 4

Kiến Trúc Von Neumann

Quá trình này được lặp lại cho đến khi máy tính gặp lệnh “dừng - halt”

Có 3 thành phần chủ yếu trong máy tính von Neumann Bộ nhớ là nơi chứa chương trình

dữ liệu Đơn vị xử lý trung tâm (central processing unit - CPU) truy xuất chương trình và dữ liệu trong bộ nhớ và thực thi chúng Đơn vị nhập/xuất truy xuất các thiết

bị nhập và xuất dữ liệu

Trang 5

Biểu Diễn Dữ Liệu

Chúng ta thường sử dụng các số được biểu

diễn trong “cơ số 10 - base 10” – hệ thập

phân Có lẻ cơ số này dựa trên ý tưởng là chúng ta có 10 ngón tay

Ví dụ:

427 = 4 * 10 2 + 2 * 10 1 + 7 * 10 0

Chúng ta nói rằng số được biểu diễn trong

cơ số 10 bởi vì các ký số của số đó được nhân với luỹ thừa của 10

Máy tính sử dụng cơ số 2, bởi vì điều này sẽ làm cho dễ dàng trong việc xây dựng phần cứng khi máy tính chỉ dựa trên hai trạng thái

Trang 6

Biểu Diễn Dữ Liệu

Cơ số 2 cũng được gọi là “hệ nhị phân -

binary number system” Các ký số (bit) của một số trong hệ nhị phân được nhân với luỹ thừa của 2 Ví dụ, tính giá trị thập phân (cơ

Trang 7

Chiều Dài Từ Của Máy Tính

Mỗi máy tính khác nhau có thể truy xuất

cùng lúc số bit khác nhau Ví dụ, một máy tính có thể truy xuất 8 bit cùng lúc được gọi

là “máy tính 8 bit” Nói cách khác, máy tính

đó có “chiều dài từ - word size” là 8 bit

Máy tính PC đầu tiên của IBM sử dụng bộ xử

lý 8088 của Intel có bus dữ liệu là 8 bit, nghĩa

là nó có thể đọc/ghi 8 bit dữ liệu cùng lúc với thiết bị ngoại vi

Ngày nay, hầu hết các máy tính có chiều dài

từ là 32 hay 64 bit

Trang 8

Định Dạng Số Nguyên

Cho đến bây giờ, chúng ta chỉ thảo luận các

số nguyên dương Máy tính cũng cần thao tác với các số nguyên có dấu và cả số thực

Để lưu trữ số có dấu, bit bên trái nhất (msb)

được sử dụng làm bit dấu Bit này có giá trị

0 nếu là số dương và 1 nếu là số âm

Số nguyên âm được biểu diễn bằng cách lấy

bù 2 (two’s complement) của số dương tương ứng Để tính bù 2 của một số, đảo ngược các bit của số đó và cộng thêm 1 Ví

dụ, bù 2 của 6 (00000110) trên máy tính 8 bit:

Trang 10

Trước đây vào thập niên 1980, các nhà sản

xuất máy tính khác nhau đã sử dụng cách biểu diễn dữ liệu khác nhau Vì vậy, chương trình và dữ liệu không tương thích trên các máy tính khác nhau

Viện IEEE (Institute of Electrical and

Electronic Engineers) đã đưa ra chuẩn để

Trang 11

Bit msb là bit dấu, 8 bit kế tiếp là số mũ của

cơ số 2 và 23 bit còn lại là phần định trị

Dấu của số mũ được kết hợp vào giá trị biểu

diễn của nó Vì lý do kỹ thuật, chuẩn IEEE không sử dụng bù 2 để biểu diễn số mũ âm

mà sử dụng phương pháp khác

Ví dụ để biểu diễn 8.5, đầu tiên là chuyển

Trang 13

chấm động (floating-point processor) để

tăng tốc độ tính toán

Bài tập tại lớp: a) Hãy cho biết vì sao giá trị

Trang 15

Định Dạng Ký Tự

Dữ liệu dùng cho chương trình ở dạng ký tự

nhiều hơn dạng số Tên, địa chỉ, tựa đề, … được biểu diễn bằng chuỗi ký tự

Các ký tự được ánh xạ hay mã hoá thành các số nguyên Có nhiều kiểu mã hoá như BCD (binary coded decimal), EBCDIC

(extended BCD interchange coded)

Bộ mã ASCII (American Standard Code for

Information Interchange) được đưa ra vào thập niên 1960 và trở thành bộ mã được ưa chuộng nhất Ngày nay, Unicode được sử dụng phổ biến hơn bởi vì nó tương thích với

bộ mã ASCII và cho phép mã hoá nhiều chữ

Trang 16

Trong bộ mã ASCII, mỗi ký tự được gán một giá trị nguyên 7 bit Cho ví dụ, ‘A’ = 65 (1000001), ‘B’ = 66 (1000010), ‘C’ = 67 (1000011), … Bit thứ 8 trong byte ký tự được dùng như bit chẵn-lẻ (parity) để kiểm tra lỗi

khi truyền thông tin hoặc mã hoá thành các

ký tự dùng trong các phép toán, các ký tự có

Trang 17

Định Dạng Ký Tự

dấu hoặc các ký tự trang trí

Một số ký tự điều khiển cũng được định

nghĩa trong bộ mã ASCII Các ký tự điều khiển không hiển thị ra màn hình nhưng được sử dụng để điều khiển thiết bị Cho ví

dụ, ‘line feed - LF’ = 10 (0001010), ‘tab’ =

11 (0001011), ‘backspace’ = 8 (0001000), …

Để xuất chuỗi “Dog” và xuống dòng, một dãy

các byte sau được gởi đi:

01000100 01101111 01100111 00001010

D o g LF

Tương tự, khi nhập dữ liệu từ bàn phím, bàn

Trang 19

CPU/ALU

CPU (Central Processing Unit) là thành phần

mà người ta nghĩ đến đầu tiên khi mô tả về máy tính Một chu kỳ trong máy tính von Neumann là:

- Nạp một lệnh từ bộ nhớ vào CPU

- Giải mã và thực thi lệnh đó

Thực thi lệnh bao gồm thực hiện các phép

tính số học hay luận lý và cũng là nạp hay lưu trữ dữ liệu trong bộ nhớ

Khi thực thi lệnh xong, máy tính sẽ lấy lệnh tiếp theo từ bộ nhớ và thực thi lệnh đó Quá trình trên tiếp tục cho đến khi CPU gặp lệnh dừng

Trang 20

CPU/ALU

CPU gồm đơn vị điều khiển (control unit -

CU), đơn vị số học và luận lý (arithmetic and logic unit - ALU) và các thanh ghi

Đơn vị điều khiển chịu trách nhiệm duy trì

đều đặn chu kỳ lấy và thực thi lệnh, ALU thực thi các phép toán số học, so sánh (>, <,

= , …) và luận lý (AND, OR, NOT, …)

Cả hai đơn vị điều khiển và ALU có các ô

nhớ đặc biệt và tốc độ thực thi rất cao được

gọi là các thanh ghi (register)

Một số thanh ghi có công dụng đặc biệt và

một số có công dụng chung

Các thanh ghi có công dụng đặc biệt là bộ

Trang 21

CPU/ALU

đếm chương trình (program counter - PC) và

thanh ghi lệnh (instruction register – IR)

Thanh ghi PC lưu giữ địa chỉ của lệnh thực thi kế tiếp Khi đơn vị điều khiển bắt đầu chu

kỳ lấy và thực thi lệnh, đơn vị điều khiển chuyển lệnh có địa chỉ được lưu trong PC đến thanh ghi IR Khi này, đơn vị điều khiển

tự động tăng thanh ghi PC để nó trỏ đến lệnh

kế tiếp

Đơn vị điều khiển giải mã lệnh trong IR và

thực thi Khi thực thi xong, đơn vị điều khiển lấy lệnh mà PC đang trỏ đến và tiếp tục chu

kỳ mới

Trang 22

CPU/ALU

Các thanh ghi có công dụng chung được sử dụng để lưu giữ dữ liệu cho CPU truy xuất Truy xuất dữ liệu trong thanh ghi nhanh hơn truy xuất trong bộ nhớ

Những máy tính khác nhau có số thanh ghi

khác nhau, kích thước thanh ghi bằng với chiều dài từ của máy tính (16, 32, 64 bit, …)

Trong kiến trúc Intel x86, có 4 thanh ghi 32 bit có công dụng chung (EAX, EBX, ECX và EDX ) và 4 thanh ghi 32 bit dùng để lưu địa chỉ stack và chuỗi (ESP, EBP, ESI và EDI)

Trang 23

Tập Lệnh

Định nghĩa cốt lõi của một kiến trúc máy tính

là là tập lệnh máy Đó là danh sách các chỉ thị mà phần cứng máy tính có thể thực thi

Các lệnh của máy tính bao gồm:

- Nạp dữ liệu từ bộ nhớ vào thanh ghi

- Lưu dữ liệu từ thanh ghi vào bộ nhớ

- Nhảy đến vị trí nào đó trong chương trình

- Dịch các bit của một giá trị sang trái hay sang phải

- So sánh 2 giá trị

- Cộng giá trị của hai thanh ghi

- Thực hiện các phép toán luận lý, …

Trang 24

Ngày nay, hầu hết các chương trình được viết bằng ngôn ngữ cấp cao hơn hợp ngữ

Khi một chương trình viết bằng ngôn ngữ

Trang 25

Tập Lệnh

lập trình cấp cao (Java, C, Python, …), bộ xử

lý ngôn ngữ (language processor - trình biên

dịch hay thông dịch) sẽ chuyển các lệnh của chương trình thành các lệnh mã máy để thực thi

Nếu chúng ta muốn thực thi chương trình đó

trên máy tính khác với tập lệnh khác, thường thì chỉ cần thay đổi bộ xử lý ngôn ngữ thích hợp với máy tính mới, mã nguồn của chương trình không thay đổi

Lệnh máy gồm một dãy các bit 0 và 1 Một số

bit được dùng làm mã lệnh (op-code) Ví dụ,

một số mã lệnh như ADD, Jump, Compare và

Trang 26

Tập Lệnh

AND Một số bit khác dùng làm toán hạng

(operand) Toán hạng có thể là thanh ghi, biến bộ nhớ hay hằng

Ví dụ lệnh máy của Intel x86 sau đây là lệnh ADD (cộng) để thực hiện thao tác “Cộng 40 vào thanh ghi DX”:

Trang 27

JMP byte thấp byte cao

Byte đầu tiên là mã lệnh của lệnh JMP Byte thứ 2 và 3 lần lượt là byte thấp và byte cao của địa chỉ muốn nhảy đến

Sau đây là một số lệnh máy tiêu biểu của tập lệnh máy Intel x86:

Trang 28

Tập Lệnh

MOV Gán toán hạng nguồn cho đích

ADD Cộng hai toán hạng

SUB Trừ hai toán hạng

DIV Chia thanh ghi cho toán hạng đích

IMUL Nhân số có dấu

DEC Giảm toán hạng đích 1 đơn vị

INC Tăng toán hạng đích 1 đơn vị

AND Lấy VÀ hai toán hạng

OR Lấy HOẶC hai toán hạng

XOR Lấy XOR hai toán hạng

NOT Lấy NOT toán hạng đích

IN Đọc dữ liệu từ cổng

Trang 29

Tập Lệnh

OUT Xuất dữ liệu ra cổng

JMP Nhảy không điều kiện

JG Nhảy nếu lớn hơn

JZ Nhảy nếu bằng 0

CALL Gọi chương trình con

RET Trả về của chương trình con

Trang 30

Tập Lệnh

OUT Xuất dữ liệu ra cổng

JMP Nhảy không điều kiện

JG Nhảy nếu lớn hơn

JZ Nhảy nếu bằng 0

CALL Gọi chương trình con

RET Trả về của chương trình con

Trang 31

Tập Lệnh

POP Lấy dữ liệu từ stack

PUSH Nạp dữ liệu vào stack

ROL Quay các bit sang trái

ROR Quay các bit sang phải

SHL Dịch các bit sang trái

SHR Dịch các bit sang phải

XCHG Hoán đổi nội dung hai toán hạng

Trang 32

Tập Lệnh

POP Lấy dữ liệu từ stack

PUSH Nạp dữ liệu vào stack

ROL Quay các bit sang trái

ROR Quay các bit sang phải

SHL Dịch các bit sang trái

SHR Dịch các bit sang phải

XCHG Hoán đổi nội dung hai toán hạng

Trang 33

Bộ Nhớ

Bộ nhớ (memory) máy tính được tổ chức

thành các ô (cell), mỗi ô được đánh địa chỉ riêng biệt

Trước đây, các nhà sản xuất máy tính không

thống nhất với nhau về kích thước của một đơn vị bộ nhớ Các máy tính khác nhau sử dụng kích thước ô nhớ khác nhau

Ngày nay, byte được dùng làm đơn vị của bộ nhớ máy tính Hầu hết các máy tính, bất chấp chiều dài từ của nó là bao nhiêu, mỗi byte bộ nhớ có địa chỉ duy nhất và có thể đọc/ghi giá trị tại đó

Trang 34

Bộ nhớ được sử dụng để lưu giữ các lệnh của

chương trình và dữ liệu Các thao tác cơ bản với bộ nhớ là lưu/ghi và lấy/đọc/nạp

Có ít nhất hai thanh ghi kết hợp với mạch điều khiển bộ nhớ để làm cho dễ dàng đọc và ghi

Trang 35

Bộ Nhớ

dữ liệu Đó là thanh ghi MAR (thanh ghi địa

chỉ - memory address register) và MDR

(thanh ghi dữ liệu - memory data register)

Khi ghi dữ liệu, đầu tiên CPU chuyển giá trị được ghi đến MDR và địa chỉ để ghi đến MAR Ở chu kỳ truy xuất bộ nhớ tiếp theo, giá trị trong MDR sẽ được chép vào địa chỉ trong MAR

Khi đọc dữ liệu, đầu tiên CPU chứa địa chỉ

để đọc vào MAR Ở chu kỳ truy xuất bộ nhớ tiếp theo, giá trị tại địa chỉ trong MAR được chép vào MDR Từ thanh ghi MDR, giá trị có thể được chuyển đến các thanh ghi khác

Trang 36

Bộ Nhớ

hoặc nơi nào đó

Bộ nhớ chính của máy tính được biết đến là

bộ nhớ RAM (bộ nhớ truy cập ngẫu nhiên -

random access memory) Chúng ta có thể truy xuất bất kỳ địa chỉ nào của bộ nhớ thì thời gian truy xuất là như nhau

Ngoài bộ nhớ chính, các nhà thiết kế máy tính cũng tích hợp vào CPU một bộ nhớ có dung lượng nhỏ, tốc độ truy cập nhanh

được gọi là bộ nhớ cache (bộ nhớ đệm)

Bộ nhớ cache lưu giữ nội dung của dữ liệu

đã được truy cập để sau này có thể dùng lại, nhằm làm tăng tốc độ của máy tính

Trang 37

Nhập/Xuất

Hầu hết dữ liệu sử dụng cho chương trình

không nằm trên máy tính Khi dữ liệu được

xử lý xong, chúng ta thường muốn chúng hiển thị ra màn hình hay xuất ra máy in

Có nhiều thiết bị nhập/xuất khác nhau:

- Giao tiếp với người: bàn phím, chuột, màn hình

- Máy tính trực tiếp sử dụng: đĩa, thiết bị kết nối mạng

Các thiết bị nhập/xuất có tốc độ rất khác nhau, nhưng tất cả đều chậm hơn CPU và bộ nhớ chính

Trang 38

Nhập/Xuất

Trong những máy tính trước đây, CPU sẽ đợi

để nhập ký tự Một lệnh máy giao tiếp với bàn phím để sẵn sàng nhận ký tự và lệnh máy kế tiếp sẽ kiểm tra xem ký tự đã nhập chưa Nếu ký tự chưa nhập, chương trình sẽ

lặp vòng để kiểm tra (polling) Phương pháp

này được gọi là “programmed I/O with polling” hay “busy waiting”

Các máy tính ngày nay sử dụng hệ thống

ngắt (interrupt system) để tránh trường hợp

phải chờ và hệ điều hành quản lý tất cả nhập/xuất

Mỗi thiết bị nhâp/xuất được kết nối với máy

Trang 39

Nhập/Xuất

tính thông qua “bộ điều khiển nhập/xuất - I/O controller” Bộ điều khiển nhập/xuất có gắn

bộ nhớ với dung lượng nhỏ để làm bộ đệm

(buffer) chứa dữ liệu tạm thời trong quá trình nhận hay gởi

Khi chương trình yêu cầu xuất, hệ điều hành

sẽ chuyển dữ liệu đến bộ nhớ đệm của bộ điều khiển nhập/xuất, bộ điều khiển nhập/xuất sẽ chuyển dữ liệu đến thiết bị xuất Khi dữ liệu được chuyển xong, bộ điều khiển

nhập/xuất tạo một ngắt (interrupt) để báo cho

hệ điều hành biết là đã chuyển xong Hệ điều hành sẽ đáp lại ngắt đó bằng cách bắt đầu

Trang 41

Nhập/Xuất

Các thiết bị nhập/xuất được phân làm 2 loại

thiết bị ký tự (character device) và thiết bị khối (block device):

1 Thiết bị ký tự: giao tiếp với bên ngoài từng byte, các byte này không có địa chỉ Nghĩa

là chỉ có thể truy xuất dữ liệu theo dạng tuần tự Đa số các thiết bị nhập/xuất dùng với máy tính thuộc loại này như bàn phím, chuột, card mạng, máy quét, máy in, …

2 Thiết bị khối: giao tiếp với bên ngoài từng khối dữ liệu, mỗi khối có địa chỉ cố định và độc lập Các thiết bị loại này như CD-ROM,

âm thanh, các thiết bị hiển thị, …

Trang 42

Nhập/Xuất

Các thiết bị ký tự sẽ sinh ra ngắt cho mỗi ký

tự được truyền đi, các thiết bị khối sẽ sinh ra ngắt chỉ khi toàn bộ khối đó được truyền đi

Hầu hết các máy tính ngày nay đều có bộ

điều khiển truy xuất bộ nhớ trực tiếp (direct memory access - DMA) để dùng với thiết bị khối

Bộ điều khiển DMA dùng để truy xuất trực

tiếp bộ nhớ và chia sẻ công việc truy xuất bộ nhớ với CPU DMA truyền dữ liệu trực tiếp giữa bộ đệm của bộ điều khiển nhập/xuất với

bộ nhớ chính, nó không yêu cầu bất cứ phục

vụ nào từ CPU

Ngày đăng: 09/05/2021, 18:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w