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


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

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

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

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


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

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

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

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
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

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

(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.

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

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

+ 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ý

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

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


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

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.

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.

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 (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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status