Tải bản đầy đủ (.pdf) (62 trang)

giáo trình kiến trúc máy tính 2 - phan văn nghĩa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (690.4 KB, 62 trang )


TRƯỜNG ĐẠI HỌC ĐÀ LẠT
F 7 G







GIÁO TRÌNH
KIẾN TRÚC MÁY TÍNH 02




PHAN VĂN NGHĨA




1998
Kiến trúc máy tính 02
MỤC LỤC
MỤC LỤC 2
CHƯƠNG 1: CẤU TRÚC CƠ BẢN CỦA PHẦN CỨNG & PHẦN MỀM MÁY TÍNH
4
1.1 CÁC THÀNH PHẦN CỦA MÁY TÍNH 4
a) Thiết bò nhập (input device) 5
b) Bộ nhớ (memory) 5
c) Bộ logic và số học (Arithmetic and logic unit - ALU) 6


d) Thiết bò ra (output device) 7
e) Bộ điều khiển (control unit - CU) 7
1.2 HOẠT ĐỘNG CỦA MÁY TÍNH 7
1.3 CẤU TRÚC BUS 10
1.4 PHẦN MỀM (SOFTWARE) 11
1.5 ĐẶC TRƯNG CỦA MÁY TÍNH 13
1.6 ĐÔI NÉT VỀ LỊCH SỬ PHÁT TRIỂN CỦA MÁY TÍNH 15
CHƯƠNG 2: BIỂU DIỄN SỐ LIỆU 17
2.1 CÁC LOẠÏI SỐ LIỆU 17
2.2 HỆ THỐNG SỐ THẬP PHÂN (DECIMAL NUMBER SYSTEM) 17
2.3 HỆ THỐNG SỐ NHỊ PHÂN (BINARY NUMBER SYSTEM) 18
2.4 HỆ THỐNG SỐ BÁT PHÂN (OCTAL NUMBER SYSTEM) 19
2.5 HỆ THỐNG SỐ THẬP LỤC PHÂN ( HEXADECIMAL NUMBER SYSTEM)20
2.6 MÃ BCD 21
2.7 MÃ ALPHANUMERIC 22
2.8 HỆ THỐNG SỐ CÓ DẤU CHẤM ĐỘNG (FLOATING-POINT NUMBER
SYSTEM)
24
2.9 PHƯƠNG PHÁP CHẲN LẺ ( PARITY METHODE ) 26
CHƯƠNG 3 : CỔNG LOGIC & MẠCH SỐ 27
3.1 ĐẠI SỐ BOOL 27
3.2 BẢNG SỰ THẬT (TRUTH TABLE) 28
3.3 PHÉP CỘNG LOGIC (OR) 29
3.4 PHÉP AND LOGIC 29
3.5 PHÉP BÙ (NOT OPERATION) 30
3.6 MÔ TẢ MẠCH LOGIC BẰNG ĐẠI SỐ BOOL 31
3.7 TÍNH GIÁ TRỊ CỦA MỘT BIỂU THỨC BOOL 32
3.8 THỰC HIỆN MẠCH LOGIC TỪ BIỂU THỨC BOOL 32
3.9 CỔNG NOR, NAND VÀ XOR 33
3.10 CÁC ĐỊNH LÝ BOOL 35

3.11 ĐỊNH LÝ DE MORGAN 36
3.12 THIẾT KẾ MẠCH LOGIC TỔ HP 37
3.13 ĐƠN GIẢN HÀM BOOL BẰNG PHƯƠNG PHÁP ĐẠI SỐ 39
3.14 CÁC MẠCH SỐ 40
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
3.15 FLIP - FLOP 40
3.16 ĐỒNG HỒ VÀ FF CÓ ĐỒNG HỒ 42
a) Khái niệm đồng hồ 42
b) FF có đồng hồ (Clocked Flip - Flops) 43
c) Các lối vào không đồng bộ 45
3.17 ỨNG DỤNG CỦA FF 45
a)Lưu trữ và truyền số liệu: 45
b) Mạch đếm (counter) 48
CHƯƠNG 4: BỘ LOGIC SỐ HỌC (ALU) 51
4.1 CẤU TRÚC CỦA ALU 51
4.2 BỘ CỘNG NHỊ PHÂN 51
a) Bộ cộng nhò phân một nửa (half-adder) 52
b) Bộ cộng đầy đủ ( Full - adder) 53
4.3 BIỂU DIỄN SỐ CÓ DẤU 54
4.4 BIỂU DIỄN SỐ CÓ DẤU DÙNG HỆ BÙ 2 55
4.5 PHÉP CỘNG TRONG HỆ BÙ 2 57
4.6 PHÉP TRỪ TRONG HỆ BÙ 2 58
4.7 CỘNG VÀ TRỪ BCD 58
a) Cộng BCD 58
b) Trừ BCD 59
4.8 CỘNG VÀ TRỪ HEX 59
a) Cộng hai số HEX 59
b) Trừ hai số hex 60

BÀI TẬP CHƯƠNG 2,3 & 4 61
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
CHƯƠNG 1: CẤU TRÚC CƠ BẢN CỦA PHẦN CỨNG &
P
HẦN MỀM MÁY TÍNH

1.1 CÁC THÀNH PHẦN CỦA MÁY TÍNH

Máy tính số (digital computer) hay máy tính (computer) là thiết bò tính toán
điện tử có tốc độ rất cao. Máy tính nhận các thông tin đã được số hóa (digitized), xử lý
chúng theo theo một danh sách các lệnh chứa sẵn bên trong máy tính và cho kết quả là
thông tin ra. Danh sách các lệnh gọi là chương trình máy tính (computer program).
Chương trình máy tính được lưu trữ tại một bộ phận bên trong máy tính gọi là bộ nhớ
(memory).
Có nhiều loại máy tính. Chúng khác nhau về kích thước, tốc độ và giá thành.
Loại máy tính thông dụng nhất là máy tính cá nhân (personal computer - PC). PC được
sử dụng rộng rãi ở nhà, trong các cơ quan hay trường học. Máy tính xách tay
(notebook computer) có kích thước rất bé có thể đặt gọn trong vali. Trạm làm việc
(workstations) là các máy tính trong 1 mạng máy tính. Mainframe và Supercomputer
là những máy tính có công suất tính toán cực mạnh. Mainframe dùng để xử lý các bài
toán trong thương mại. Super computer dùng trong các ứng dụng mà ở đó số phép toán
phải tiến hành trong 1 giây là số rất lớn (cỡ 10
13
phép tính/s) như dự báo thời tiết, điều
khiển các chuyến bay vũ trụ, thiết kế máy bay, nghiên cứu hạt nhân
Ở dạng đơn giản nhất, một máy tính bao gồm 5 thành phần chính độc lập
(hình 1-1): thiết bò nhập (input), thiết bò xuất (output), bộ nhớ (memory), bộ logic số
học (ALU) và bộ điều khiển (Control Unit) .










Hình 1-1 : Các thành phần của một máy tính
CU
ALU
MEMORY
OUTPUT
INPUT
Thiết bò nhập nhận thông tin đã được mã hoá từ các hoạt động của con người,
từ các thiết bò cơ điện (chẳng hạn bàn phím) hay từ một máy tính khác thông qua
đường truyền tin kỹ thuật số. Thông tin nhận được hoặc được lưu trữ trong thiết bò nhớ
để sử dụng sau này hoặc được xử lý trực tiếp để thu được kết quả như mong muốn.
Các bước xử lý thông tin được quy đònh bởi chương trình chứa trong bộ nhớ. Cuối cùng
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
kết quả được gửi trở lại thế giới bên ngoài thông qua thiết bò xuất. Tất cả các hoạt
động trên đây được chỉ dẫn bởi bộ điều khiển.
ALU và CU được chế tạo trong 1 chip gọi là bộ xử lý trung tâm (Central
Processing Unit = CPU) hay đơn giản là Processor. Từ trung tâm xuất hiện vào thời kỳ
đầu mới khai sinh máy tính, ở đó các tính toán đều tập trung trong một chip. Các máy
tính hiện đại thường chứa nhiều Processor, nhưng thuật ngữ CPU vẫn được dùng rộng
rãi. Cũng cần nói thêm rằng, trong PC, Processor được gọi là bộ vi xử lý (Micro

Processor Unit =MPU). Các thiết bò dùng để nhập và xuất dữ liệu được gọi chung là
thiết bò vào ra (IO unit).
Lệnh (Instructions) hay lệnh máy (machine instructions) là chỉ dẫn để:
• Truyền thông tin giữa các máy tính hay trong phạm vi một máy tính và
các ngoại vi của nó.
• Chỉ ra các phép toán logic số học phải thực hiện trên số liệu.
Một tập các lệnh để thực hiện một nhiệm vụ gọi là một chương trình
(program). Thông thường chương trình được lưu trữ trong trong bộ nhớ. Bộ xử lý lấy
(fetches) lệnh từ bộ nhớ. Lệnh phải được giải mã (decoded), sau đó nó được thực hiện.
Máy tính thực hiện các lệnh trong chương trình một cách lần lượt, trừ khi nó bò ngắt
(interrupt) bởi người điều khiển hoặc bởi các thiết bò ngoại vi nối với máy tính.
Dữ liệu (data) là các số hoặc ký tự đã được mã hóa mà nó được dùng như là
các toán hạng (operand) của lệnh. Data bao gồm mọi thông tin đã được số hóa. Đôi
khi data cũng được hiểu là một chương trình hoàn chỉnh mà một chương trình khác sử
dụng nó. Ví dụ khi biên dòch một chương trình nguồn (source program) ngôn ngữ cấp
cao thành chương trình ngôn ngữ máy thì chương trình nguồn được xem là data của
trình biên dòch (compiler).
Thông tin đưa vào máy tính phải được mã hóa ở dạng thích hợp. Các số, các ký
tự hoặc lệnh được mã hóa thành một chuỗi số nhò phân gọi là các bits. Mỗi bit chỉ
nhận một trong 2 giá trò khả dó 0 hoặc 1.
Các ký tự Alphanumeric cũng được biễu diễn bởi mã nhò phân. Mã ký tự dùng
phổ biến trong máy tính là mã ASCII.

a) Thiết bò nhập (input device)
Máy tính nhận thông tin đã được mã hóa thông qua thiết bò nhập. Quá trình này
gọi là đọc số liệu. Thiết bò nhập thường dùng nhất là bàn phím (keyboard). Keyboard
được nối sao cho khi một phím được nhấn, ký tự hoặc số tương ứng được tự động
chuyển thành mã nhò phân và được gửi trực tiếp tới bộ nhớ hoặc vi xử lý. Có nhiều
thiết bò nhập khác như: chuột (mouse), máy quét (scanner), ADC.


b) Bộ nhớ (memory)
Chức năng của bộ nhớ là lưu giữ chương trình và số liệu. Có 2 loại bộ nhớ:
bộ nhớ sơ cấp (bộ nhớ chính – bộ nhớ trong - Primary Memory – Main Memory-
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
Internal Memory) và bộ nhớ thứ cấp (bộ nhớ ngoài - bộ nhớ phụ -Secondary Memory -
Auxiliary Memory - External Memory).
Bộ nhớ sơ cấp hay bộ nhớ chính (Main memory) là bộ nhớ nhanh. Các chương
trình được nạp lên bộ nhớ chính trong khi chúng đang được thực hiện. Bộ nhớ chính
bao gồm một số lớn các ô nhớ bán dẫn. Mỗi ô nhớ chứa được một bit thông tin. Việc
đọc hoặc viết thông thường được tiến hành với nhiều ô nhớ gọi là từ nhớ (memory
word). Bộ nhớ chính được tổ chức sao cho nội dung của một từ (n bit) có thể được truy
xuất bằng lệnh đọc hoặc viết bộ nhớù. Số các bit trên một từ nhớ gọi là độ dài từ (word
length) của máy tính. Độ dài từ của các máy tính có thể là 8,16, 32 hoặc 64 bit.
Tổng số ô nhớ trên bộ nhớ gọi là dung lượng (capacity) của bộ nhớ. Dung lượng
bộ nhớ trong của PC có thể là vài MB đến hàng trăm MB.
Để có thể truy xuất tới mọi từ nhớ trên bộ nhớ, mỗi từ nhớ được gán một đòa
chỉ (Address) riêng biệt. Từ nhớ trong bộ nhớ có thể được truy xuất bằng cách chỉ ra
đòa chỉ và lệnh đọc viết tương ứng. Số liệu được xử lý theo một từ, bội của từ hoặc
một phần của từ. Khi bộ nhớ được truy xuất, thông thường một từ của số liệu được đọc
từ bộ nhớ hoặc được viết vào bộ nhớ.
Chương trình phải nằm trên bộ nhớ khi đang thi hành. Lệnh và số liệu có thể
được viết vào bộ nhớ hay đọc ra dưới sự điều khiển của vi xử lý. Thời gian cần thiết
để truy xuất tới một vò trí nhớ trong bộ nhớ gọi là thời gian truy xuất bộ nhớ
(memory access time = Tacc). Các bộ nhớ có Tacc không phụ thuộc vò trí nhớ gọi là
bộ nhớ truy xuất ngẫu nhiên (Random Access Memories = RAM). Tacc có giá trò vài
chục ns (nano second) trong các máy tính hiện đại.
Mặc dù bộ nhớ chính rất quan trọng, nhưng giá thành lại quá cao. Vì vậy người
ta dùng thêm bộ nhớ phụ (secondary memory) khi muốn lưu giữ một lượng lớn thông

tin không sử dụng thường xuyên. Bộ nhớ phụ có thể là đóa từ (magnetic disks) hay đóa
quang (Compact Disc).

c) Bộ logic và số học (Arithmetic and logic unit - ALU)
Hầu hết các hoạt động tính toán của máy tính được thực hiện tại bộ logic số
học có trong vi xử lý. Giả sử rằng cần phải cộng 2 số trên bộ nhớ chính. Hai số này
phải được chuyển vào ALU, ở đây phép cộng được thực hiện. Kết quả của phép cộng
có thể lưu trữ trong bộ nhớ hoặc vẫn giữ lại trong vi xử lý để sử dụng ngay lập tức .
Mọi phép toán logic và số học, ví dụ: nhân, chia hay so sánh 2 số đều được
thực hiện tại ALU. Không phải tất cả các toán hạng cần cho tính toán phải ở trong bộ
nhớ chính. Vi xử lý có những phần tử nhớ tốc độ cao, gọi là các thanh ghi (registers).
Các thanh ghi được dùng để lưu giữ những toán hạng được dùng thường xuyên trong
khi tính toán . Mỗi thanh ghi có thể lưu giữ một từ số liệu. Thời gian truy xuất thanh
ghi là từ 5 đến 10 ns (nhanh hơn thời gian truy xuất bộ nhớ chính)
ALU và bộ điều khiển thường là các thành phần có tốc độ hoạt động nhanh
hơn các thành phần khác nối với hệ máy tính. Điều này cho phép sử dụng chỉ một vi
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
xử lý để điều khiển một số lớn các thiết bò ngoại vi có tốc độ hoạt động khác nhau
như bộ nhớ ngoài, màn hình, máy in …

d) Thiết bò ra (output device).
Thiết bò ra làm việc theo nguyên tắc ngược lại với thiết bò vào. Chức năng của
thiết bò ra là gửi các kết quả đã được xử lý ra ngoài.
Ví dụ điển hình của thiết bò xuất là máy in (printer). Các kết quả đã được xử lý
bởi CPU có thể được gửi ra ngoài thông qua máy in. Máy in có nhiều kiểu: máy in kim
ma trận điểm, máy in phun mực, máy in laser Công nghệ ngày nay cho phép in
khoảng 15 PPM. Đó là tốc độ rất cao của các hệ thống cơ học tuy nhiên nó vẫn là tốc
độ rất chậm đối với vi xử lý.


e) Bộ điều khiển (control unit - CU)
Bộ nhớ, bộ logic số học và các thiết bò nhập xuất lưu giữ và xử lý thông tin,
thực hiện các tác vụ nhập xuất. Hoạt động của các bộ phận này phải được phối hợp
nhòp nhàng với nhau. Bộ điều khiển có chức năng thực hiện việc phối hợp này. Bộ
điều khiển một mặt gửi các tín hiệu điều khiển đến các bộ phận, mặt khác nó luôn
luôn theo dõi trạng thái của các bộ phận đó để cho những tín hiệu điều khiển hợp lý.
Ví dụ việc chuyển số liệu giữa bộ nhớ và các ngoại vi phải được điều khiển bởi bộ
điều khiển . Bộ điều khiển phải tạo ra tín hiệu thời gian mà nhờ tín hiệu này các hành
động của các bộ phận xảy ra đúng vào thời điểm mong đợi. Có thể nói rằng bộ điều
khiển là một đơn vò độc lập và liên quan đến tất cả các bộ phận khác trong máy.
Trên thực tế, mạch điện của bộ điều khiển được phân bố đến khắp nơi trong máy.
Một tập hợp các đường dây điều khiển (control bus) mang các tín hiệu thời gian. Các
tín hiệu này dùng để đồng bộ hoạt động của tất cả các bộ phận trong máy.
Tóm lại, hoạt động tổng quát của một máy tính có thể tóm tắt như sau:
• Máy tính nhận thông tin dưới dạng chương trình và số liệu thông qua thiết bò nhập.
Thông tin được lưu giữ trong bộ nhớ máy tính.
• Thông tin được lưu giữ trong bộ nhớ được lấy vào ALU dưới sự điều khiển của
chương trình. Tại ALU, thông tin được xử lý.
• Thông tin đã được xử lý được đưa ra ngoài thông qua thiết bò xuất.
• Tất cả các hoạt động bên trong máy tính được chỉ dẫn bởi bộ điều khiển.
1.2 HOẠT ĐỘNG CỦA MÁY TÍNH

Trong phần 1.1 chúng ta đã nói rằng hoạt động của máy tính được điều khiển
bởi các lệnh (instructions). Để thực hiện một nhiệm vụ cho trước, một chương trình
tương ứng bao gồm một tập các lệnh sẽ được lưu giữ trong bộ nhớ chính. Các lệnh
riêng rẽ sẽ được đọc từ bộ nhớ vào vi xử lý. Mỗi lệnh sẽ thực hiện một thao tác đã
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02

đònh sẳn . Số liệu lưu giữ trên bộ nhớ được sử dụng như các toán hạng (operands). Ví
dụ lệnh:
ADD AX, LOCA
Lệnh này sẽ cộng toán hạng tại vò trí nhớ (đòa chỉ) LOCA với toán hạng chứa
trong thanh ghi AX (trong vi xử lý), kết quả của phép cộng đặt vào AX. Nội dung ban
đầu của ô nhớ tại vò trí LOCA vẫn giữ nguyên, trong khi đó nội dung ban đầu của
thanh ghi AX bò xoá, thay vào đó là kết quả của phép cộng. Lệnh này phải thực hiện
qua vài bước. Trước tiên lệnh được đọc từ bộ nhớ chính vào vi xử lý. Tiếp theo nội
dung của ô nhớ tại vò trí LOCA được đọc vào ALU rồi cộng với nội dung của AX. Cuối
cùng kết quả của phép cộng được lưu giữ trong thanh ghi AX.
Việc chuyển số liệu giữa bộ nhớ chính và vi xử lý được bắt đầu bằng việc vi xử
lý gửi đòa chỉ của ô nhớ cần truy xuất và tín hiệu điều khiển hợp lý tới bộ nhớ. Số
liệu sau đó sẽ được chuyển giữa bộ nhớ và vi xử lý một cách tương ứng.
Hình 1-2 là sơ đồ nối giữa vi xử lý và bộ nhớ chính. Sơ đồ chỉ có ý nghóa trong
việc mô tả các chức năng của vi xử lý và bộ nhớ .
Cùng với ALU và bộ điều khiển, vi xử lý còn có các thanh ghi dùng cho việc
lưu trữ tạm thời số liệu. Thanh ghi lệnh (IR - Instruction Register) giữ lệnh đang được
thực hiện. Bộ đếm chương trình (PC - Program Counter) chứa đòa chỉ bộ nhớ của lệnh
sẽ được thực hiện. Sau khi thực hiện lệnh, nội dung của PC sẽ được cập nhật tới đòa
chỉ của lệnh tiếp theo. Bình thường nội dung của PC sẽ tăng lên 1 nếu chương trình
không bò một lệnh nhảy hay lệnh ngắt nào khác.




Hình 1-2: Sơ đồ nối giữa CPU và bộ nhớ máy tính

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02

Bên cạnh IR và PC còn có n thanh ghi đa chức năng (General Purpose
Register): R
0
, R
1 ,
R
N-1
. Các thanh ghi này được sử dụng vào nhiều mục đích khác
nhau.
Có hai thanh ghi dùng để giao tiếp với bộ nhớ là: Thanh ghi đòa chỉ bộ nhớ
(MAR Memory Address Register) và thanh ghi số liệu bộ nhớ (MDR Memory Data
Register). MAR chứa điạ chỉ của ô nhớ cần truy xuất, còn MDR giữ nội dung của số
liệu cần chuyển ( giữa Vi xử lý và bộ nhớ).
Chúng ta hãy xem xét các bước hoạt động cơ bản khi thực hiện 1 chương trình.
Chương trình chứa trong bộ nhớ chính. Việc thực thi chương trình bắt đầu khi PC chỉ
tới vò trí nhớ mà lệnh đầu tiên của chương trình được lưu giữ. Nội dung của PC được
chuyển tới MAR và một tín hiệu điều khiển đọc được gửi tới bộ nhớ. Sau thời gian
cần cho việc truy xuất bộ nhớ (Tacc), nội dung của từ nhớ (lệnh đầu tiên của chương
trình) được đọc vào MDR. Tiếp theo, nội dung của MDR được chuyển đến IR . Tại
thời điểm này lệnh đã sẳn sàng cho việc giải mã và thực hiện .
Nếu lệnh là một phép toán mà ALU phải tính thì cần phải lấy các toán hạng
cần thiết. Nếu toán hạng đã có sẵn bên trong bộ nhớ (các toán hạng cũng có thể được
chứa trong các thanh ghi dùng chung) thì nó phải được đọc vào ALU bằng cách gửi
đòa chỉ toán hạng tới MAR và khởi tạo chu trình đọc (read cycle). Toán hạng sau đó
được đọc từ bộ nhớ vào MDR rồi chuyển tới ALU. Sau khi một hoặc nhiều toán hạng
được đọc theo cách này, ALU có thể thực hiện phép toán. Nếu kết quả phép toán được
lưu trữ trong bộ nhớ thì nó được gửi tới MDR. Đòa chỉ ô nhớ tại đó kết quả được lưu trữ
sẽ được gửi tới MAR và chu trình viết (write cycle) sẽ được bắt đầu. Trong khi một
lệnh đang được thực hiện, nội dung của PC sẽ tăng lên sao cho nó chỉ tới đòa chỉ của
lệnh kế tiếp. Ngay sau khi lệnh hiện hành được hoàn tất, lệnh mới sẽ được lấy vào vi

xử lý để giải mã và thực hiện.
Cùng với việc chuyển số liệu giữa bộ nhớ chính và vi xử lý, máy tính truy xuất
số liệu từ các thiết bò vào và gửi kết quả đến thiết bò ra. Do đó có một số lệnh máy
cho phép chuyển số liệu vào ra.
Việc thực hiện một chương trình có thể bò ngắt nếu một hoặc nhiều thiết bò
ngoại vi yêu cầu được phục vụ. Tín hiệu ngắt được tạo ra bởi các ngoại vi để yêu cầu
vi xử lý phải phục vụ chúng. Ngắt cũng được tạo ra bởi lệnh INT trong các chương
trình. Vi xử lý sẽ cung cấp một dòch vụ theo yêu cầu bằng cách thi hành một chương
trình con phục vụ ngắt (interrupt service routine). Trước khi phục vụ ngắt, trạng thái
bên trong của vi xử lý phải được cất giữ vào bộ nhớ. Bình thường, nội dung của PC,
các thanh ghi đa chức năng và một số thông tin điều khiển phải được cất giữ. Khi
chương trình con phục vụ ngắt kết thúc, trạng thái của chương trình chính sẽ được
phục hồi sao cho chương trình chính đã bò ngắt có thể tiếp tục.
Bộ vi xử lý trên hình 1-2 có thể thực hiện theo vài cách. Trong các máy tính cở
nhỏ và cở trung, tất cả các thành phần của vi xử lý được chế tạo trên một chip VLSI
(Very Large Scale Intergrated ).

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
1.3 CẤU TRÚC BUS

Chúng ta đã phân tích các thành phần riêng biệt của máy tính. Để toàn bộ hệ
thống có thể hoạt động được cần phải nối các thành phần ấy lại với nhau. Có nhiều
cách để làm điều này. Chúng ta sẽ xem xét ở đây cách làm đơn giản nhất và cũng
thường dùng nhất.
Để đạt được tốc độ hoạt động cao, máy tính phải được tổ chức sao cho tất cả
các đơn vò được nối song song với nhau thông qua một bus chung của toàn hệ thống
(system bus). Bus là một tập hợp các đường dây dùng để nối các thiết bò với nhau.
Trong kiến trúc máy tính 1 bus, tại một thời điểm chỉ có một thiết bò chiếm quyền điều

khiển bus mà thôi. Khi một từ số liệu được chuyển giữa các đơn vò, tất cả các bit
được chuyển song song (mỗi bit được truyền đồng thời với các bit khác trên những
đường dây riêng). Các đường dây dùng để truyền số liệu gọi là bus số liệu (data bus).
Cùng với bus số liệu còn có các đường dây dùng cho đòa chỉ và điều khiển. Chúng
được gọi tương ứng là bus đòa chỉ (address bus) và bus điều khiển (control bus).
Hình 1-3 là sơ đồ nối các bộ phận của máy tính bằng một bus duy nhất.
Bởi vì bus được dùng chung nên tại một thời điểm chỉ có 2 thiết bò được phép dùng
bus . Ưu điểm chủ yếu của cấu trúc 1 bus là giá thành thấp và nó cho phép nối hệ vi
xử lý máy tính với các ngoại vi một cách mềm dẻo (có thể thêm hoặc bớt dễ dàng).


Hình 1-3: Cấu trúc một bus của máy tính
Các thiết bò ngoại vi nối với bus có thể có tốc độ làm việc rất khác nhau: bàn
phím và máy in tương đối chậm còn các ổ đóa thì nhanh hơn. Vi xử lý và bộ nhớ chính
làm việc với tốc độ rất cao. Vì tất cả các thiết bò liên lạc với nhau thông qua bus, nên
cơ chế truyền thông tin một cách hiệu quả là không cưỡng bức các thiết bò chậm làm
việc nhanh lên mà cần có biện pháp dung hòa sự khác biệt về tốc độ của các thiết bò.
Giải pháp chung là dùng các thanh ghi đệm (buffer registers) để giữ thông tin trong
khi truyền. Để mô tả kỹ thuật này chúng ta hãy xem xét việc truyền các ký tự giữa vi
xử lý và máy in. Vi xử lý gửi các ký tự dọc theo bus tới bộ đệm của máy in. Do thanh
ghi đệm trên máy in có tốc độ rất nhanh nên việc truyền các ký tự giữa vi xử lý và bộ
đệm chiếm rất ít thời gian. Khi bộ đệm máy in đã có số liệu, máy in bắt đầu in. Trong
khi máy in tiến hành in, bus và vi xử lý hoàn toàn rãnh rỗi, lúc này trên bus có thể
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
tiến hành một hoạt động khác do vi xử lý điều khiển. Trong khi máy in đang in số liệu
trong thanh ghi đệm thì nó không thể nhận số liệu mới cho đến khi việc in hoàn tất.
Như vậy là thanh ghi đệm làm giảm sự khác biệt về tốc độ giữa vi xử lý, bộ nhớ và
các ngoại vi. Điều này tránh cho vi xử lý khỏi bò “chết “ do các ngoại vi chậm trong

khi chuyển số liệu.
1.4 PHẦN MỀM (SOFTWARE)

Phần mềm là tập hợp tất cả các chương trình để điều khiển hoạt động của máy
tính.
Để người dùng (user) có thể nhập vào và chạy các chương trình ứng dụng
(application program), máy tính phải có một vài phần mềm hệ thống (system
software). Phần mềm hệ thống là tập hợp các chương trình nhằm thực hiện các chức
năng chính sau đây:
• Nhận và thông dòch các lệnh của người sử dụng máy tính.
• Nhận và soạn thảo các chương trình ứng dụng, lưu trữ chúng như là những tập tin
(files) trên bộ nhớ ngoài.
• Quản lý việc lưu trữ và cập nhật các tập tin trên bộ nhớ ngoài.
• Chạy các chương trình ứng dụng chẳng hạn như chương trình bảng tính điện tử
hoặc trò chơi mà số liệu được cung cấp bởi người dùng.
• Điều khiển các thiết bò ngoại vi trong việc xuất nhập thông tin.
• Dòch các chương trình nguồn được soạn thảo bởi người dùng thành chương trình
ngôn ngữ máy.
• Liên kết và chạy các chương trình ứng dụng được viết bởi người dùng bằng cách sử
dụng các chương trình con thư viện chuẩn .
Phần mềm hệ thống có chức năng kết hợp tất cả các hoạt động trên hệ thống
máy tính. Các chương trình ứng dụng thường được viết bởi ngôn ngữ lập trình cấp cao
như C, Pascal trong đó các lập trình viên biểu diễn các bài toán dưới dạng không
phụ thuộc vào máy tính cụ thể mà chương trình đó sẽ chạy. Lập trình viên dùng các
chương trình ngôn ngữ cấp cao không cần biết chi tiết tập lệnh máy. Một chương trình
hệ thống gọi là compiler sẽ dòch chương trình ngôn ngữ cấp cao thành chương trình
ngôn ngữ máy thích hợp.
Một thành phần rất quan trọng của phần mềm hệ thống là hệ điều hành
(operating system = OS). OS là một chương trình lớn hoặc tập hợp các chương trình
con. Các chương trình con của OS thực hiện các nhiệm vụ phân phối các tài nguyên

máy tính cho các chương trình ứng dụng riêng biệt. Các nhiệm vụ này bao gồm việc
sử dụng bộ nhớ chính và bộ nhớ phụ cho các chương trình và các tập tin số liệu, di
chuyển số liệu giữa bộ nhớ và các ổ đóa, thực hiện các tác vụ vào ra.
Để hiểu được những nội dung cơ bản của OS, chúng ta sẽ xem xét một hệ
thống có một vi xử lý, một ổ đóa và một máy in. Trước hết chúng ta hãy xem xét các
bước khi chạy một chương trình ứng dụng. Giả sử rằng chương trình ứng dụng đã
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
được biên dòch từ một chương trình ngôn ngữ cấp cao thành chương trình ngôn ngữ máy
và được lưu giữ trong đóa. Đầu tiên tập tin này được chuyển vào bộ nhớ chính. Khi
việc chuyển tập tin vào bộ nhớ hoàn tất, việc thực thi chương trình được bắt đầu. Giả
sử rằng chương trình này phải đọc một tập tin dữ liệu từ đóa vào bộ nhớ chính, tiến
hành một số tính toán trên số liệu rồi in kết quả ra máy in. Khi chương trình thực thi
đến đoạn cần tập tin dữ liệu thì chương trình yêu cầu OS chuyển tập tin dữ liệu từ đóa
vào bộ nhớ. Sau khi chuyển tập tin dữ liệu vào bộ nhớ chính, OS trả lại quyền điều
khiển cho chương trình ứng dụng. Chương trình ứng dụng sẽ thực hiện việc tính toán
trên số liệu theo yêu cầu. Khi việc tính toán hoàn thành và kết quả đã sẳn sàng để in,
chương trình ứng dụng một lần nữa trả quyền điều khiển cho OS. OS sẽ chạy một
chương trình con điều khiển máy in để in kết quả.
Hình 1-4 là giản đồ thời gian mô tả sự chia sẻ (sharing) thời gian giữa chương
trình ứng dụng và các chương trình con của OS.


Hình 1-4: Sự chia sẻ thời gian trong PC

Trong khoảng thời gian to đến t1, một chương trình con của OS sẽ nạp chương
trình ứng dụng từ đóa vào bộ nhớ, chờ cho đến khi việc chuyển hoàn tất, điều khiển
thực thi chương trình được trả cho chương trình ứng dụng. Trong thời gian t2 đến t3 và
t4 đến t5 cũng xảy ra hoạt động do chương trình con của OS điều khiển. Vào thời điểm

t5, OS có thể nạp và thực thi một chương trình ứng dụng khác.
Cuối cùng cần phải nói rằng các tài nguyên mày tính có thể được sử dụng một
cách hiệu quả hơn nếu có vài chương trình ứng dụng cùng được xử lý. Lưu ý rằng vào
thời điểm từ t4 đến t5, vi xử lý và đóa là rãnh. Lúc này OS có thể nạp và chạy một
chương trình khác trong khi máy in đang làm việc. Tương tự, vào thời điểm từ t0 đến
t1, OS có thể điều khiển in kết quả của chương trình trước trong khi chương trình hiện
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
tại đang nạp từ đóa vào bộ nhớ. Như thế là OS có nhiệm vụ sử dụng các tài nguyên
máy tính một cách có hiệu quả khi một vài chương trình ứng dụng được thực hiện .

1.5 ĐẶC TRƯNG CỦA MÁY TÍNH

Máy tính có nhiều đặc trưng như số đường số liệu và đòa chỉ, dung lượng bộ
nhớ, tốc độ đồng hồ, tổng thời gian thi hành 1 chương trình …Trong đó tổng thời gian
cần thiết để thi hành một chương trình ứng dụng là một trong những đặc trưng quan
trọng nhất của máy tính. Bởi vì các chương trình ứng dụng được viết bằng ngôn ngữ
cấp cao, do đó đặc trưng về tốc độ trên đây có liên quan đến cách thức mà trình
biên dòch (compiler) dòch chương trình thành ngôn ngữ máy. Đặc trưng tốc độ cũng bò
ảnh hưởng bởi việc chọn lệnh ngôn ngữ máy và thiết kế phần cứng của máy tính. Để
có đặc trưng tốt nhất cần phải thiết kế trình biên dòch (compiler), tập lệnh máy
(machine instruction set) và phần cứng phù hợp với nhau.
Trong phần trước chúng ta đã mô tả cách thức mà OS tổ chức để các tài
nguyên phần cứng khác nhau có thể làm việc vào cùng một thời điểm khi vài chương
trình được thực thi cùng một lúc. Rõ ràng rằng việc thực thi nhiều chương trình cùng
một lúc sẽ cho đặc trưng tốc độ cao hơn là thực hiện chương trình một cách riêng rẽ.
Chúng ta hãy xem xét dòng các lệnh và số liệu được truyền giữa bộ nhớ và vi xử lý
(hình 1-5). Hình 1-5 là một phần của hình 1-3 được vẽ lại cộng thêm bộ nhớ đệm
(cache memory).



Hình 1-5: Vi xử lý với bộ nhớ cache

Vào lúc bắt đầu thực thi chương trình, tất cả các lệnh và số liệu có liên quan
đã được lưu giữ trong bộ nhớ. Trong qúa trình thực thi chương trình, lệnh lần lượt được
đọc vào vi xử lý. Khi thực hiện các lệnh có liên quan đến số liệu thì số liệu phải được
lấy vào từ bộ nhớ chính. Chúng ta hãy xem xét cái gì sẽ quy đònh tốc độ thực hiện thao
tác này.
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
Các bộ vi xử lý đầy đủ có thể được chế tạo trên một chip riêng rẽ. Tốc độ bên
trong của vi xử lý khi thực hiện lệnh là rất cao, nhanh hơn cả tốc độ tối đa khi lấy lệnh
và số liệu từ bộ nhớ chính. Điều này có nghóa là, nếu di chuyển lệnh và số liệu trên
bus với thời gian cực tiểu sẽ rút ngắn thời gian thi hành lệnh. Ví dụ: giả sử rằng một
chương trình thực hiện nhiều lệnh lặp lại (trong một vòng lặp chẳng hạn). Trong trường
hợp này tốc độ xử lý sẽ tăng lên nếu các lệnh và số liệu liên quan đến lệnh lặp có
sẵn trong vi xử lý. Trong các vi xử lý hiện đại người ta chế tạo sẵn một bộ nhớ tốc
độ cao gọi là bộ nhớ cache (hình vẽ 1-5)
Trong các hệ thống có cache, lệnh và số liệu được xử lý đầu tiên sẽ được đặt
trong cache. Các lệnh tương tự sau đó sẽ được thực hiện nhanh hơn vì đã có sẵn trong
cache.
Sau đây chúng ta sẽ xem xét qúa trình thực hiện chương trình và các lệnh. Mỗi
một lệnh của chương trình ngôn ngữ máy cần một số bước để thực hiện. Mỗi một bước
cần một chu kỳ đồng hồ (clock cycle) của bộ điều khiển trong vi xử lý để hoàn thành.
Đồng hồ là tín hiệu có chu kỳ không thay đổi do mạch tạo đồng hồ tạo ra. Người ta
thường dùng thuật ngữ tần số (frequency) để chỉ đặc trưng của đồng hồ. Đơn vò đo tần
số là chu kỳ trong một giây (cycle per second). Trong kỹ thuật điện và điện tử thuật
ngữ chu kỳ trong một giây, gọi là Hezt (Hz). Các đơn vò lớn hơn của Hz là KHz (1.000

Hz), MHz (1.000.000Hz) và GHz (1.000.000.000 Hz). Các vi xử lý hiện nay có tần số
đồng hồ từ khoảng vài trăm MHz đến hàng GHz. Một vi xử lý có đồng hồ 1000MHz
(1GHz) thì chu kỳ đồng hồ của nó là 1ns (nano giây =1 phần tỷ của giây), nghóa là nó
thực hiện một bước trong lệnh hết 1 ns mà thôi. Rõ ràng là vi xử lý có tần số đồng hồ
càng cao thì tốc độ thực hiện chương trình càng nhanh.
Gọi T là tổng thời gian cần để thực hiện một chương trình ngôn ngữ cấp cao.
Trình biên dòch tạo ra chương trình ngôn ngữ máy tương ứng với chương trình nguồn.
Giả sử cần N lệnh ngôn ngữ máy để thực hiện toàn bộ chương trình. Số N không nhất
thiết phải bằng với số lệnh trong chương trình đã được biên dòch. Một số lệnh phải
thực hiện nhiều lần và một số lệnh không thực hiện gì cả tuỳ thuộc vào số liệu được
sử dụng. Giả sử S là số bước trung bình để thực hiện một lệnh ngôn ngữ máy. R là
tốc độ đồng hồ (Hz). Tổng thời gian thực hiện chương trình là:

τ =
()NxS
R

Để có đặc trưng tốt cần giảm N và S, đồng thời tăng R.
Tốc độ đồng hồ R phụ thuộc vào công nghệ được sử dụng để chế tạo vi xử lý.
Để giảm N và S cần có tập lệnh máy và trình biên dòch tốt. Vi xử lý có tập lệnh đơn
giản sẽ chỉ cần S bé hơn vi xử lý có tập lệnh phức tạp. Tuy nhiên vi xử lý có tập lệnh
đơn giản hơn sẽ có N lớn hơn.
Cho đến thời điểm này chúùng ta giả sử rằng không có sự giao nhau (overlap)
trong khi thực thi các bước lần lượt của lệnh. Đặc trưng tốc độ sẽ được cải thiện đáng
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
kể nếu có sự giao nhau trong khi thực hiện các bước của lệnh. Kỹ thuật này gọi là ống
dẫn (pipelining ). Xét lệnh sau:
ADD R1 , R2

Lệnh này cộng nội dung thanh ghi R1 với nội dung thanh ghi R2 rồi đặt kết quả
vào R1.
Để thực hiện lệnh này, nội dung của R1 và R2 được đọc vào ALU, sau khi thực
hiện phép cộng, tổng có được sẽ được chuyển vào R1. Giả sử rằng có một lệnh cộng
khác theo sau lệnh cộng này. Các toán hạng của phép cộng thứ hai này được chuyển
vào cùng một thời điểm với việc ghi kết quả phép cộng trước ra R1. Trong trường hợp
lý tưởng, mỗi lệnh như thế sẽ được hoàn thành trong một chu kỳ đồng hồ. Nói chung
trong các hệ thống có pipelining, tốc độ xử lý sẽ tăng đáng kể do S trong biểu thức của
τ tiến tới 1. Việc sử dụng bộ nhớ cache và kỹ thuật ống dẫn làm tăng đáng kể tốc độ
xử lý.


1.6 ĐÔI NÉT VỀ LỊCH SỬ PHÁT TRIỂN CỦA MÁY TÍNH

Máy tính đã ra đời cách đây hơn 50 năm. Trong một thời gian dài trước đó,
người ta sử dụng các thiết bò tính toán cơ học. Vào 300 năm trước, một loạt các thiết
bò cơ học phức tạp đã được sử dụng để chế tạo nên máy tính. Máy tính hồi ấy chỉ thực
hiện được các phép toán cộng trừ, nhân và chia. Giấy đục lỗ là một trong những
phương pháp được dùng để đưa chương trình vào máy tính. Các lỗ trên giấy được bộ
phận cảm biến cơ học đọc vào máy tính. Chúng được dùng để điều khiển một cách lần
lượt các thao tác tính toán. Các máy tính thời đó có thể tính các bảng lượng giác và
logarit. Kết quả được in ra giấy hoặc thể hiện bằng phiếu đục lỗ. Trong thời gian chiến
tranh thế giới thứ 2, các thiết bò relay cơ điện đã được sử dụng để thực hiện các chức
năng điều khiển logic trên máy tính. Cũng vào thời gian này, máy tính điện tử đầu
tiên đã được thiết kế và chế tạo tại Đại học Pennsylvania dựa trên công nghệ đèn
điện tử . Đèn điện tử đã được dùng trong các thiết bò vô tuyến và radar. Trong máy
tính điện tử đầu tiên, chúng được dùng để thực hiện các chức năng logic và lưu trữ số
liệu. Công nghệ này đã mở ra một thời kỳ mới trong lòch sử phát triển của máy tính:
máy tính điện tử số (digital computer).
Dựa vào công nghệ được sử dụng để chế tạo máy tính, người ta chia máy tính

thành 4 thế hệ: Thế hệ thứ nhất từ 1945 đến 1955. Thế hệ thứ hai từ 1955 đến 1965.
Thế hệ thứ ba từ 1965 đến 1975 và thế hệ thứ tư từ 1975 đến nay.
• Thế hệ thứ nhất: Trong máy tính thế hệ 1, những nội dung chủ yếu của việc lưu
giữ chương trình đã được đề xuất bởi John von Neumann. Theo đó chương trình và số
liệu được đặt trên bộ nhớ chính. Ngôn ngữ Assembly đã được dùng để viết chương
trình và sau đó nó phải được chuyển thành ngôn ngữ máy khi thực hiện. Các phép
toán đại số cơ bản được thực hiện chỉ trong vài mili giây bằng cách dùng công nghệ
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
đèn điện tử để thực hiện các chức năng logic. Máy tính thế hệ thứ nhất đã có tốc độ
cao gấp 100 đến 1000 lần so với máy tính dựa trên công nghệ relay cơ điện trước đó.
Bộ nhớ dùng dây trễ (delay line memory) đã được sử dụng trước tiên. Các chức năng
vào ra đã được thực hiện bằng một thiết bò tương tự máy đánh chữ. Sau đó bộ nhớ
bằng xuyến từ và bộ nhớ dùng băng từ đã được thay thế cho bộ nhớ dùng dây trễ.
• Thế hệ thứ hai: Vào năm 1940, transistor đã được phát minh bởi phòng thí
nghiệm AT&T Bell (Mỹ). Transistor đã nhanh chóng thay thế đèn điện tử. Công nghệ
transistor đã đánh dấu sự bắt đầu của máy tính thế hệ thứ hai. Bộ nhớ bằng xuyến từ
và các thiết bò nhớ dùng trống từ đã được sử dụng rộng rãi vào thời kỳ này. Các ngôn
ngữ cấp cao, như Fortran, đã ra đời làm cho các lập trình viên viết chương trình dễ
dàng hơn . Các chương trình hệ thống gọi là Compiler đã được phát triển để dòch các
chương trình ngôn ngữ cấp cao ra chương trình hợp ngữ tương ứng. Các bộ xử lý vào ra
riêng biệt cũng đã được chế tạo. Chúng có thể làm việc song song với bộ xử lý trung
tâm trong khi chạy các chương trình. Điều này đã làm tăng rõ rệt đặc trưng tốc độ của
toàn hệ thống. IBM là nhà máy sản xuất máy tính chủ yếu vào thời kỳ này.
• Thế hệ thứ ba: Với sự ra đời của công nghệ mới, công nghệ IC (integrated circuit
technology) đã cho phép chế tạo các bộ xử lý, các bộ nhớ làm việc nhanh hơn và giá
thành thấp hơn. Công nghệ IC cho phép chế tạo nhiều transistor trên một chip đơn tinh
thể. Các bộ nhớ IC đã bắt đầu thay thế các bộ nhớ bằng xuyến từ. Cùng với công
nghệ IC là kỹ thuật vi chương trình ( microprogramming), kỹ thuật xử lý song song

(parallelism) và kỹ thuật ống dẫn ( pipelining). Các phần mềm hệ điều hành cho phép
chia sẻ một cách có hiệu quả tài nguyên của hệ máy tính bởi một vài chương trình
khác nhau . Bộ nhớ đệm (cache memory) và bộ nhớ ảo (virtual memory) cũng đã được
phát triển. Các mainframe computer 360 của IBM và PDP minicomputer của hãng
Digital Equiment là những sản phẩm thương mại chính vào thời kỳ này.
• Thế hệ thứ tư: Vào đầu những năm 70, kỹ thuật chế tạo IC đã có thể chế tạo
các bộ xử lý hoàn chỉnh và phần lớn các bộ phận của bộ nhớ chính ngay trên một chip.
Khoảûng 10,000 transitors có thể đặt trên một chip. Người ta dùng thuật ngữ VLSI
(Very Large Scale Integrated) để chỉ công nhệ này. Công nghệ VLSI cho phép một bộ
xử lý hoàn chỉnh có thể chế tạo trên một chip. Nó được gọi là vi xử lý (micro
processor). Intel, National, Motorola, Texas Instruments. là những công ty có những
nổ lực và đóng góp to lớn cho sự phát triển của công nghệ vi xử lý. Vào thời kỳ này
máy tính có kích thước nhỏ nhưng có khả năng tính toán mạnh mà chúng ta gọi là
máy vi tính (micro computer hay personal coputer - PC) đã ra đời.
• Sau thế hệ thứ tư là các máy tính hiện tại. Xu hướng chung của công nghệ máy
tính ngày nay là làm cho máy tính ngày càng compact hơn về cấu tạo, tốc độ cao, giá
thành hạ, khả năng trí tuệ nhân tạo, khả năng giao tiếp với người dùng thông qua ngôn
ngữ, khả năng kết nối Internet tốc độ cao

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
CHƯƠNG 2: BIỂU DIỄN SỐ LIỆU

2.1 CÁC LOẠÏI SỐ LIỆU

Thông tin nhò phân trong các máy tính được lưu trữ trong bộ nhớ hoặc trong các
thanh ghi của vi xử lý. Thông tin đó bao gồm số liệu hoặc thông tin điều khiển. Thông
tin điều khiển là 1 bit hoặc 1 nhóm bit dùng để chỉ ra các tín hiệu điều khiển cần cho
việc quản lý số liệu. Số liệu là các số và các thông tin được mã hoá (nhò phân) khác.

Trong chương này sẽ trình bày các cách biểu diễn số liệu trong máy tính.
Các loại số liệu trong máy tính có thể phân loại thành các kiểu sau:
• Các số dùng trong các phép toán số học
• Các ký tự dùng trong việc xử lý số liệu
• Các ký hiệu dùng trong các mục đích đặc biệt khác
Toàn bộ số liệu đều được biểu diễn dưới dạng nhò phân hoặc được mã hoá kiểu
nhò phân. Điều này là do các thanh ghi của máy tính được làm từ các Flip flop có 2
trạng thái do đó nó có thể lưu trữ được số 0 hoặc 1.


2.2 HỆ THỐNG SỐ THẬP PHÂN (DECIMAL NUMBER SYSTEM)

Hệ thống số mà chúng ta đang dùng gọi là hệ thống số thập phân hay hệ cơ số
(base) 10. Hệ thập phân dùng 10 chữ số (digit): 0,1,2,3,4,5,6,7,8,9. Một số gồm n chữ
số ở phần nguyên và 1 chữ số phần thập phân được biểu diễn dưới dạng sau: a
n-1
a
n-
2
…a
1
a
0 .
a
-1

Trong đó a
n-1
là số có trọng số lớn nhất: MSD (Most Significant Digit)
a

0
là số có trọng số bé nhất: LSD (Least Significant Digit)
Số trạng thái mà một số thập phân n digit biểu thò được là 10
n
, nghóa là một số
thập phân có 2 chữ số biểu thò được 100 giá trò, từ 0 đến 99, một số thập phân có 4 chữ
số biểu thò được 1000 giá trò, từ 0 đến 999.
Giá trò bằng số của một số thập phân được tính như sau:
a
n-1
10
n-1
+ a
n-2
10
n-2
+

+ a
1
10
1
+

a
0
10
0
+ a
-1

10
-1

Ví dụ: số 125 = 1x100 + 2x10 + 5x 1
số 45.2 = 4x10 + 5x1 + 2x10
-1
= 45.2

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
2.3 HỆ THỐNG SỐ NHỊ PHÂN (BINARY NUMBER SYSTEM)


Trong hệ nhò phân chỉ sử dụng 2 số là 0 và 1 để biểu thò các số.
Một số nhò phân được viết dưới dạng sau:
b
n-1
b
n-2
…b
1
b
0
. b
-1

Các b
i
gọi là các bit (binary digit)

Trong đó

b
n-1


bit có trọng số lớn nhất MSB, còn b
0
là bit có trọng số bé nhất
LSB.
Giá trò bằng số của nó trong hệ 10 được tính như sau:
b
n-1
2
n-1
+ b
n-2
2
n-2
+… +b
1

2
1
+ b
0
2
0
+ b
-1

2
-1

Một số nhò phân n bit có thể biểu diễn được 2
n
giá trò khác nhau.
Một số nhò phân 4,5,6,7 và 8 bit có thể biểu diễn được 16, 32, 64, 28 và 256
trạng thái (kể cả trạng thái 0).


Bảng sau đây cho thấy 8 số nhò phân đầu tiên:

DECIMAL BINARY DECIMAL BINARY
0 000 4 100
1 001 5 101
2 010 6 110
3 011 7 111

Lưu ý rằng các số không nguyên vẫn được biểu diễn như trong hệ 10. Ví dụ:
0.123 = 1x10
-1
+2x10
-2
+ 3x 10
-3
trong hệ 10
0.101= 1x2
-1
+ 0x2
-2

+ 1x2
-3
trong hệ 2

Biến đổi từ thập phân sang nhò phân

Có 2 cách biến đổi từ thập phân sang nhò phân
Cách 1: Biểu diễn số thập phân dưới dạng tổng của các thừa số là bội số của 2.
Căn cứ kết quả có được để viết ra số nhò phân.

ví dụ : 10
10
= 8 + 0 + 2 + 0

= 2
3
+ 0 + 2
2
+ 0
= 1010
2

Cách 2: Chia lặp số thập phân cho 2 (cơ số của hệ 2) rồi viết số dư theo trật tự
ngược lại.

ví dụ : 10 :2 = 5 dư 0 LSB
5 : 2 = 2 dư 1
2 : 2 = 1 dư 0
1 : 2 = 0 dư 1 MSB
Phan Văn Nghóa Khoa Vật Lý


Kiến trúc máy tính 02
Kết quả là 10
10
= 1010
2

Đối với các số có phần thập phân (phần lẻ) thì phần thập phân được biến đổi
như sau: Nhân phần thập phân với 2 (cơ số của hệ 2) sẽ thu được phần nguyên và phần
thập phân mới. Phần thập phân mới này lại nhân 2 cho đến khi phần thập phân bằng 0
hoặc khi đạt được độ chính xác mong muốn. Các bit sau dấu chấm nhò phân chính là
các phần nguyên sau mỗi lần nhân 2.
Ví dụ1: Biến đổi 8.6875 sang hệ 2
Phần nguyên tương đương trong hệ 2 là 1000
Phần thập phân 0.6875 biến đổi như sau.
0.6875
x2
1.3750
x2
0.7500
x2
1.5000
x2
1.0000
Vậy 8.6875
10
= 1000.1011
2

Ví dụ 2: Biến đổi 15.25 sang hệ 2

Biến đổi tương tự như trên ta được 15.25
10
=1111.01
2
2.4 HỆ THỐNG SỐ BÁT PHÂN (OCTAL NUMBER SYSTEM)

Hệ thống số bát phân là hệ thống cơ số 8. Các digit chỉ nhận các giá trò từ 0
đến 7. Trong hệ bát phân không sử dụng các chữ số 8 và 9.
Trong máy tính người ta sử dụng hệ cơ số 8 để biểu diễn số liệu, lệnh hay đòa
chỉ một cách tiện lợi hơn dùng hệ nhò phân mặc dù máy tính chỉ có thể làm việc với
số nhò phân.
Có thể biến đổi dễ dàng một số bát phân thành một số thập phân bằng cách
nhân các digit với trọng số tương ứng như bảng sau đây.

8
4
8
3
8
2
8
1
8
0
8
-1
8
-2
8
-3




Ví dụ: 372
8
= 3x 8
2
+ 7x8
1
+ 2x8
0

= 3x 64 +7x8 + 2 = 250
10

24.6
8
= 2x8 + 4x1 +6x 8
-1

= 20.75
10

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
Đổi từ thập phân sang bát phân. Chia liên tiếp số thập phân cho 8 rồi viết số dư theo
thứ tự ngược.
Ví dụ: 266
10

266:8 = 33 dư 2 LSD
33 :8

= 4 dư 1
4 :8 = 0 dư 4 MSD
Viết ngược số dư 266
10
= 412
8

Đổi từ bát phân sang nhò phân và ngược lại.
Quan hệ giữa bát phân và nhò phân được mô tả trên bảng sau.

Octal 0 1 2 3 4 5 6 7
Binary
Equivalent
000 001 010 011 100 101 110 111

Bảng này được sử dụng để đổi một số Octal thành Binary bằng cách chuyển tương ứng
từng digit của số Octal sang Binary 3 bit.
Ví dụ: 257
8
tương đương với 010 101 111
2
Để chuyển một số nhò phân thành một số bát phân người ta nhóm từng 3 bit nhò phân
từ trái sang phải rồi chuyển chúng thành một digit bát phân tương ứng.

Ví dụ: 100 111 001
2
tương đương với

4 7 1
8

Đếm trong hệ 8.
66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 100
276, 277, 300, 301

2.5 HỆ THỐNG SỐ THẬP LỤC PHÂN ( HEXADECIMAL
NUMBER SYSTEM)

HEXADECIMAL DECIMAL BINARY
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
5 6 0110
7 7 0111
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111


Hệ thập lục phân dùng cơ số 16, với 16 digit 0, 1,…, 9, A, B, C, D, E, F.
Bảng trên cho thấy quan hệ giữa hệ cơ số 16, hệ thập phân và nhò phân.
Giá trò bằng số của một số Hex tính trong hệ 10 như sau:
2AFH = 2x16
2
+ Ax16
1
+ Fx16
0

= 512 + 160 + 15 = 687
10
Đổi từ thập phân sang thập lục phân
Chia lặp cho 16 rồi viết số dư theo trật tự ngược
Ví dụ: 423
10
423 : 16 = 26 dư 7 LSD
26 : 16 = 1 dư 10
1 :16 = 0 dư 1 MSD
Viết ngược 423
10
= 1A7H

Đổi từ nhò phân sang thập lục phân và ngược lại

Nhóm từng nhóm 4 bit của số nhò phân từ phải sang trái rồi chuyển tương ứng từng
nhóm 4 bit nhò phân ấy sang thập lục phân.
Ví du 1: 1001 0000 1110 0011
2

tương đương với
9 0 D 3 H
Để chuyển từ số Hex sang số nhò phân thì chuyển tương ứng từng digit của số Hex
thành số nhò phân 4 bit tương đương.
Ví dụ 2: 2FDH tương đương với
0010 1111 1110
2
Cũng như hệ cơ số 8 hệ cơ số 16 là một cách biểu diễn thuận tiện trong máy tính.
2.6 MÃ BCD

Khi các số, các ký tự hoặc các từ được biểu diễn bởi một nhóm các ký hiệu
theo một qui tắc nào đó thì chúng ta gọi là chúng được mã hoá (Encoded). Các ký hiệu
ấy gọi là mã (Code).
Chúng ta biết rằng một số thập phân bất kỳ có thể biểu diễn bởi một số nhò
phân tương đương. Số nhò phân có thể xem là mã biểu diễn số thập phân. Khi một số
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
thập phân được biểu diễn bởi một số nhò phân tương đương chúng ta gọi là sự mã hóa
nhò phân trực tiếp.
Các hệ thống số luôn luôn dùng số nhò phân cho các hoạt động bên trong nhưng
thế giới bên ngoài lại chỉ dùng số thập phân. Vì vậy cần phải chuyển đổi giữa số thập
phân và nhò phân một cách thường xuyên. Nhưng sự chuyển đổi này sẽ dài và phức
tạp đối với các số lớn. Vì lý do này nên người ta dùng một bộ mã có khả năng chuyển
đổi dễ dàng giữa hai hệ thống này. Đó là mã BCD = BCD code (Binary Coded
Decimal Code). Trong mã BCD mỗi chữ số thập được biểu diễn bởi một số nhò phân 4
bit tương đương với nó.Vì số thập phân chỉ gồm các số từ 0 đến 9 cho nên có 6 giá trò
sau đây không dùng trong mã BCD: 1010, 1011, 1100, 1101, 1110 và 1111. Những giá
trò này được dùng để phát hiện lỗi trong khi làm việc với mã BCD.


Ví dụ 1: Chuyển số thập phân 847 sang BCD
1000 0100 0111 BCD
Việc chuyển số BCD sang thập phân được tiến hành tương tự như việc chuyển một số
Binary sang số Hex.

Ví dụ 2: Chuyển 0110 1000 0011 BCD sang thập phân
6 8 3
10

So sánh giữa BCD và BINARY
BCD không phải là một hệ thống số như các hệ thống số nhò phân, bát phân
hay thập lục phân. BCD cũng không phải là số nhò phân trực tiếp.
Chúng ta hãy so sánh 2 trường hợp sau đây:
137
10
= 10001001
2
(8 bits)
137
10
= 0001 0011 0111 BCD (12 bits)

Ưu điểm chủ yếu của BCD là dễ dàng chuyển đổi giữa thập phân và BCD.
Điều này đặc biệt quan trọng về phương diện phần cứng vì trong máy tính các mạch
logic thường xuyên phải biến đổi từ BCD sang thập phân và ngược lại.
2.7 MÃ ALPHANUMERIC

Số liệu và chương trình thường được đưa vào máy tính dưới dạng
alphanumeric. Có nhiều bộ mã alphanumeric đã được đề nghò và đang được sử dụng
rộng rãi trong PC.

Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
Bảng sau đây là bảng mã ASCII.
000 001 010 011 100 101 110 111
0000 CC CC SP 0 @ P ’ p
0001 CC CC ! 1 A Q a q
0010 CC CC “ 2 B R c r
0011 CC CC # 3 C S c s
0100 CC CC $ 4 D T d t
0101 CC CC % 5 E U e u
0110 CC CC & 6 F V f v
0111 BEL CC ‘ 7 G W g w
1000 BS CC ( 8 H X h x
1001 CC CC ) 9 I Y i y
1010 LF CC * : J Z j z
1011 CC CC + ; K [ k
{
1100 FF CC , < L \ l ‘
1101 CR CC - = M ] m
}
1110 CC CC . > N

n ~
1111 CC CC / ? O

o DEL

Bộ mã đầu tiên do Viện chuẩn quốc gia của Mỹ (The American Standard Institute) đề
nghò với tên gọi là ASCII (American Standard Code for Information Interchange). Mã

ASCII dùng 7 bit nhò phân (128 trạng thái) để biểu diễn các số và chữ, các ký tự đặc
biệt. Các ký tự CC (Character Control) là các ký tự điều khiển. Ví dụ một số ký tự
điều khiển thường dùng và ASCII của chúng như sau:
ASCII KEY Name
1B ESC Escape
07 BEL Bell
08 BS Backspace
0A LF Line feed
0C FF Form feed
0D CR Carriage return
7F DEL Delete
Ví dụ: A có mã ASCII là 1000001 = 41H
i có mã ASCII là 1101001 = 69H
* có mã ASCII là 0101010 = 2AH
Space có mã ASCII là 0100000 = 20H
DEL có mã ASCII là 1111111 = 7FH
Trong các máy tính IBM người ta dùng bộ mã BCD mở rộng (Extended BCD
Interchange Code) gọi là EBCDIC trong đó sử dụng 8 bit nhò phân để mã hóa các số
và chữ.
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
2.8 HỆ THỐNG SỐ CÓ DẤU CHẤM ĐỘNG (FLOATING-POINT
NUMBER SYSTEM)

Trong các phần trước chúng ta đã mô tả các hệ thống số với dấu chấm cố đònh
(fixed point). Khi máy tính tính toán trên các số kiểu này, các phép toán được gọi là
số học với dấu chấm cố đònh (fixed point arithmetic).
Trong khoa học thường phải tính toán với những số rất lớn hoặc rất bé, vì vậy
các nhà khoa học đề nghò một cách biểu diễn số dưới dạng.

N=MxB
E
(1)
Trong biểu thức (1):
♦ M là phần đònh trò (mantissa, significand or fraction)
♦ E là số mũ (exponent)
♦ B là cơ số (base của hệ thống số.
Việc biểu diễn các số dưới dạng (1) sẽ thuận tiện khi tính toán .
Ví dụ: ( ax10
m
) x ( bx10
n
) = axbx10
m+n
( ax10
m
) : ( bx10
n
) = (a/b)x10
m-n
( ax10
m
) + ( bx10
n
) = (a+b)x10
m
nếu m=n .
Việc làm cho m=n gọi là mở rộng số (scaling number).
Rõ ràng rằng khó có thể đạt được độ chính xác đối với các số quá lớn hoặc quá bé.
Để giải quyết vấn đề này người ta dùng 2 kỹ thuật sau đây:

Trên máy tính dùng một chương trình con dấu chấm động (Floating-point
routines) để scaling các số nhằm đạt được độ chính xác mong muốn. Chương
trình con này chỉ sử dụng trên các máy tính chỉ có các phép toán dấu chấm
cố đònh (fixed-point operations)


♦ Thêm các phép toán dấu chấm động (floating-point operations) vào phần
cứng máy tính. Mạch logic của máy tính sẽ thực hiện scaling tự động và theo
dõi số mũ khi tính toán. Để làm được việc này người ta dùng hệ thống số dấu
chấm động (floating-point system).

Số có dấu chấm động trên máy tính dùng
hệ số mũ như đã mô tả trên đây. Trong khi tính toán, máy tính theo dõi cả
phần mũ lẫn phần đònh trò.
Một ví dụ điển hình cho các máy tính có mạch thực hiện các phép toán dấu
chấm động là máy tính IBM. Một số dấu chấm động theo IBM gồm 3 phần:
♦ Bit dấu (signal bit): chỉ ra số âm hay số dương .

♦ Phần số mũ: gọi là charateristic.

♦ Phần đònh trò: gọi là fraction.
Hình vẽ sau đây là dạng của một số dấu chấm động trong IBM PC có độ dài từ 32 bit
(hoặc 64 bit).
0

1 …7

8…31(8…63)



S Charateritics Fraction

• Bit đầu tiên bên trái là bit dấu S. Bit dấu bằng 0 là số dương, bit dấu bằng 1 là số
âm.
Phan Văn Nghóa Khoa Vật Lý

Kiến trúc máy tính 02
• Các bit từ 1 đến 7 là phần đặc trưng (Charateritic) gọi là C. Giá trò bằng số thập
phân của C là từ 0 đến 127.
• Các bit từ 8 đến 31 (trong máy có độ dài từ là 32 bit) và từ 8 đến 63 (trong máy có
độ dài từ 64 bit) gọi là phần đònh trò (phần sau dấu chấm).
Giá trò bằng số trong hệ 10 được tính như sau:
(-1)
S
x 16
C-64
x Fraction
với C là giá trò thập phân tương đương của phần Characteritic.
Ví dụ 1: số dấu chấm động 0 1000001 1110…0
có giá trò bằng : +16
65-64
x7/8 = +14
Ví dụ 2 : số có dấu chấm động 1 1000011 110…0
có giá trò bằng : - 16
67-64
x3/4 = - 3072
Hầu hết các PC ngày nay đều sử dụng chuẩn IEEE 754 (Institute of Electrical &
Electronics Engineers) cho số học dấu chấm động nhò phân (binary floating-point
Arithmetic) theo nguyên lý che số 1 (hidden 1 principle) trong phần hệ số.
Dạng tổng quát của một số dấu chấm động theo nguyên lý che số 1 như sau.


S (1 bit) E (8 bit hoặc 11 bit) F (23 hoặc 52 bit)

Giá trò bằng số của số dấu chấm động theo nguyên tắc ẩn số 1 là:
V=(-1)
S
x2
E-127
x1.F cho số dài 32 bit
V=(-1)
S
x2
E-1023
x1.F cho số dài 64 bit
Sau đây là vài ví dụ.
Ví dụ 1: Số có dấu chấm động 32 bit

Floating-point format (Hex) (-1)
S
x2
E-127
x1.F Decimal value
3F800000 1x2
0
x1.0 +1
BF800000 -1x2
0
x1.0 -1
40400000 1x2
1

x1.5 +3

Ví dụ 2: Số có dấu chấm động 64 bit

Floating-point format(HEX) (-1)
S
x2
E-1023
x1.F Decimal value
3FD000 00 1x2
-2
x1.0 0.25
C03E00 00 -1x2
4
x1.875 -30
401C00…00 1x2
2
x1.75 7


Phan Văn Nghóa Khoa Vật Lý

×