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

Cổng logic và đại số logic. Chương VI:

15 354 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Cổng logic và đại số logic. Chương VI: Các mạch vi xử lý - tổ chức CPU
Trường học Trường Đại Học Marketing
Chuyên ngành Cấu trúc máy tính
Thể loại Giáo trình
Định dạng
Số trang 15
Dung lượng 320,81 KB

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

Nội dung

Thanh ghi tích luỹ Accumulator: Trong CPU có một hay nhiều thanh ghi được dùng để chứa dữ liệu, các dữ liệu này được đọc từ bộ nhớ vào.. A DC IR Nội dung của PC lúc khởi động chương trìn

Trang 1

Chương VI:

CÁC MẠCH VI XỬ LÝ - TỔ CHỨC CPU

1 Giới thiệu các thanh ghi:

Một bộ phận then chốt trong CPU chính là các thanh ghi (Register)

Thanh ghi là một dạng bộ nhớ có tốc độ đọc - ghi cực nhanh, dung lượng hạn chế và nằm trong CPU Giống như các đơn vị nhớ, thanh ghi bao gồm các đơn vị nhớ nhị phân và được đánh địa chỉ để dễ dàng truy xuất chúng

Thông thường, tuỳ theo chức năng của chúng mà người ta đặt tên cho chúng,

vì vậy chúng có nhiều tên gọi khác nhau

1.1 Thanh ghi tích luỹ (Accumulator):

Trong CPU có một hay nhiều thanh ghi được dùng để chứa dữ liệu, các dữ liệu này được đọc từ bộ nhớ vào Các thanh ghi có chức năng này được gọi là thanh ghi tích luỹ Thanh ghi tích luỹ lưu trữ dữ liệu tạm thời trong khi tính toán Trong hầu hết máy tính, thanh ghi tích luỹ thường giữ một trong những toán hạng của các phép tính số học, luận lý

Ngoài ra, thanh ghi tích luỹ còn được dùng trong các phép toán dịch chuyển bit và các lệnh khác

Thanh ghi tích luỹ 8 bit

1.2 Thanh ghi đếm dữ liệu (Data Counter):

Trong CPU có một hay nhiều thanh ghi đếm dữ liệu, nó chứa địa chỉ của dữ liệu cần đọc hay ghi Kích thước của thanh ghi này tuỳ thuộc vào độ lớn của bộ nhớ

Ví dụ:

Thanh ghi 8 bit có thể định vị 28 (=256) ô nhớ

Thanh ghi 16 bit có thể định vị 216 (=65536) ô nhớ

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 <- Bit

Thanh ghi đếm dữ liệu 16 bit

1.3 Thanh ghi lệnh (Instruction Register):

Thanh ghi này được dùng để lưu trữ lệnh đã được đọc từ bộ nhớ vào Thông thường loại thanh ghi này có chiều dài 8 bit Dùng lưu trữ lệnh cho đến khi lệnh

Trang 2

được giải mã Độ dài bit của nó chính là độ dài bit của lệnh cơ bản cho máy tính Một số máy tính có hai thanh ghi lệnh, do đó nó có thể lấy một lệnh đồng thời cất một lệnh trong khi thực hiện lệnh trước đó và sự xử lý này được gọi là

xử lý đường ống (pipe - line)

1.4 Mạch đếm chương trình (PC – Program Count):

Mạch đếm chương trình là thanh ghi chứa địa chỉ của mã lệnh Dựa trên địa chỉ này CPU đọc lệnh từ bộ nhớ và chứa vào Thanh ghi lệnh

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 <- Bit

2 Cách sử dụng các Thanh ghi:

Khi khởi động, địa chỉ đầu tiên được đưa vào Mạch đếm chương trình

Ví dụ: Giả sử ta có lệnh đầu tiên nằm trong bộ nhớ tại địa chỉ 0400, do đó nội

dung của mạch đếm chương trình (PC) là 0400

địa chỉ

bộ nhớ

lệnh 1

Vùng nhớ chương trình

0409

0A32

Vùng nhớ dữ liệu

Trang 3

A DC IR

Nội dung của PC lúc khởi động chương trình

Kế tiếp CPU nạp nội dung ô nhớ có địa chỉ chứa trong PC vào Thanh ghi lệnh (IR) đồng thời tăng PC lên 1

A DC

Nạp mã lệnh vào IR và tăng PC lên 1

CPU giải mã lệnh (9C) và thi hành lệnh đưa 2 byte kế tiếp vào DC Qui trình như sau:

o Căn cứ vào địa chỉ ghi ở PC, CPU nạp nội dung ô nhớ tương ứng vào byte cao của DC và tăng PC lên 1

A

Nạp byte cao vào DC

o Với địa chỉ trong PC tìm tiếp byte tương ứng và nạp nọi dung vào byte thấp của DC đồng thời tăng nội dung của PC lên 1

A

Nạp byte thấp vào DC

o Lệnh được thi hành xong Chú ý nội dung của ô nhớ 0401 và 0402 cũng được nạp vào DC dù đây là 2 vùng nhớ nằm trong vùng nhớ chương trình

và được định vị bởi PC Như vậy, dữ liệu mà được xử lý ngay trong lệnh, loại dữ liệu này gọi là “trực kiện” hoặc dữ liệu lấy ngay (immediate data) Với địa chỉ trong PC, CPU nạp lệnh kế vào IR

Trang 4

Nạp lệnh kế vào IR Lệnh 40 nạp ô nhớ có địa chỉ trong DC vào A

Lưu ý rằng nội dung DC và PC không tăng PC không tăng vì 7A không phải là

dữ liệu hay lệnh trực kiện mà nó được tìm từ vùng nhớ dữ liệu DC không tăng vì

dữ liệu cần xử lý kế tiếp không nhất thiết phải nằm ở vùng nhớ kế tiếp

 Lệnh 3 giống như lệnh 1:

a) Nạp mã lệnh vào IR

b) Tìm lệnh 0A trong địa chỉ 0405 và nạp vào byte cao của DC

c) Tìm lệnh 31 trong địa chỉ 0406 và nạp vào byte thấp của DC

 Lệnh 4 có mã 80 lấy nội dung vùng nhớ có địa chỉ chứa trong DC cộng vào A Qui trình được thực hiện như sau:

a) Nạp lệnh vào IR

Trang 5

7A A

b) Thực hiện lệnh 80

 Lệnh 5 có mã 60 lưu nội dung của A vào vùng nhớ định bởi DC Qui trình như sau:

a) Tìm lệnh (Nạp lệnh vào IR):

b) Thực hiện lệnh:

0A30 7A 0A31 A9 0A32

3 Mạch tính toán (ALU – Arithmetic & Logical Unit):

Mạch này được gọi là Mạch tính toán số học và luận lý Các chức năng chính của nó là:

 Thực hiện phép cộng nhị phân

 Thực hiện các phép tính luận lý (đại số bool)

 Làm bù số

 Dịch chuyển các bit trong dữ liệu

4 Thanh ghi địa chỉ bộ nhớ (MAR – Memory Address Register):

Thanh ghi này dùng để giữ địa chỉ của dữ kiện trong bộ nhớ Địa chỉ này có thể là một phần của lệnh hay do chương trình cung cấp Lệnh nạp thanh ghi tích luỹ (A) từ bộ nhớ có địa chỉ giả sử là 300 thì sẽ nạp A và nội dung của ô nhớ có địa chỉ 300 (do lệnh nào vào MAR giá trị 300) Nội dung của A sẽ tăng lên 1 và cất lại ô nhớ 300 Như vậy, CPU có thể truy xuất đến ô nhớ 300 một số lần mà không cần chỉ ra địa chỉ của nó (ở đây là 300) trong lệnh (vì đã chứa sẵn trong MAR)

Trang 6

Ngoài ra còn có thể dùng ô nhớ kế tiếp (có địa chỉ là 301) bằng cách đơn giản là cộng vào MAR

5 Mạch điều kiểm (CU – Control Unit):

Mạch điều kiểm có nhiệm vụ chủ yếu là giải mã lệnh đang chứa trong IR và phát tín hiệu truyền dữ liệu vào ALU đồng thời nó ra lệnh cho ALU thực hiện

Hoạt động của Mạch điều kiểm

6 Các cờ trạng thái:

CPU có một dãy các cổng luận lý để ghi nhận kết quả thực hiện của ALU Các cổng này hợp lại thành thanh ghi trạng thái, mỗi cổng (1 bit) được gọi là một cờ trạng thái Trong thanh ghi này có các cờ sau:

6.1 Cờ gởi (Carry Flag):

Dùng để ghi bit nhớ khi thực hiện phép tính trên một hay nhiều byte hay word

Ví dụ: Giả sử ta có phép cộng sau:

Byte cao Byte thấp

Thanh ghi đệm

Thanh ghi trạng thái Mạch dịch chuyển Mạch bù Mạch cộng và Bool

Đường truyền

dữ liệu

A DC IR PC

Thanh ghi đệm

Trang 7

6.2 Cờ Zero (Zero Flag):

Cờ này có giá trị 1 khi kết quả thực hiện là 0 và có trị 0 khi kết quả có trị 1

6.3 Cờ dấu (Sign Flag):

Cờ này ghi nhận bit dấu của số nhị phân có dấu hoặc cho biết kết quả của phép tính là âm hay dương

6.4 Cờ tràn (Overflow Flag):

Cờ này có trị 1 khi xảy ra hiện tượng tràn Hiện tượng này chỉ xảy ra khi có giá trị gởi ở bit cao

Ví dụ: Thực hiện các phép công sau:

0010 0011 0101 1011 1100 1011 1011 1100 + 0001 1101 1011 1001 1101 1000 1100 0111

0100 0001 0001 0101 1010 0100 1000 0011

Không tràn do không nhớ ở bit cao Đối với số nhị phân có dấu, hiện tượng tràn xảy ra khi bit nhớ tại bit dấu (Cp) và bit kế tiếp (Cs = bit kế bit dấu) khác nhau

Ví dụ: Thực hiện các phép tính sau:

 Cộng 2 số 2 và 2:

4 0000 0100 Cp=0, Cs=0 không tràn

 Cộng hai số -0C và +09:

-0C 1111 0100 +09 0000 1001 -03 1111 1101 Cp=0, Cs=0 không tràn

 Cộng hai số -75 và +79:

-75 1000 1011 +79 0111 1001

4 0000 0100 Cp=1, Cs=1 không tràn

 Cộng hai số -28 và +59:

-28 1101 1000 +59 0101 1001 +31 0011 0001 Cp=1, Cs=1 không tràn

Trang 8

 Cộng hai số -45 và +67:

-45 0100 0101 +67 0110 0111 -54 1010 1100 Cp=0, Cs=1 tràn

 Cộng hai số -6E và +5C:

-6E 1001 0010 +5C 1010 0100 +36 0011 0110 Cp=1, Cs=0 tràn

Kết luận: Hiện tượng tràn xảy ra khi Cờ tràn = Cs  Cp

( Dấu  thể hiện phép XOR)

6.5 Cờ Chẵn - lẻ (Parity Flag):

Cờ này bậc lên 1 khi có sự truyền dữ liệu bị sai tính chẵn lẻ

6.6 Cờ cho phép ngắt quãng (Interrupt Enable Flag):

Cờ này có trị 1 nếu cho phép ngắt quãng và trị 0 nếu không cho phép ngắt Bên cạnh đó, CPU cũng có thể tự động cấm ngắt quãng trong khi khởi động hay trong chương trình phục vụ, người lập trình cũng có thể ngắt quãng trong các vòng lặp hay các phép tính nhiều “từ” (word) Một máy tính có thể

có nhiều cờ loại này nếu có nhiều ngõ vào yêu cầu ngắt quãng

7 Qui trình thực hiện lệnh:

7.1 Thời gian thực hiện lệnh:

Các tác vụ trong CPU được điều khiển bởi đồng hồ thạch anh có chu kỳ trong khoảng vài chục đến vài trăm nano giây (=109 s) Đồng hồ này phát tín hiệu sống vuông có ký hiệu là Ф

Tín hiệu đồng hồ Ф Tuỳ theo nhu cầu mà các dạng tín hiệu này được thiết kế đơn giản hay phức tạp

Ví dụ: Hai dạng tín hiệu khác nhau của đồng hồ Ф

Dạng tín hiệu Ф1

Trang 9

Dạng tín hiệu Ф2

7.2 Chu kỳ lệnh:

Thông thường, mỗi lệnh được thi hành thông qua 2 giai đoạn: Tìm lệnh và thực hiện lệnh

 Tìm lệnh:

CPU xuất nội dung của PC cùng với tín hiệu yêu cầu đọc nội dung ô nhớ

có địa chỉ chứa trong PC Sau khi đọc xong, CPU lưu nội dung vào IR và tăng PC lên 1

 Thực hiện lệnh:

CU căn cứ vào IR tạo ra một loạt các thao tác để thi hành lệnh Tương ứng với hai giai đoạn trên là hai chu kỳ đồng hồ Ф và tạo thành một chu kỳ lệnh

8 Cấu trúc của CPU 8086/8088:

Bộ xử lý thường thực hiện chương trình bằng cách lập các bước sau:

 Lấy lệnh từ bộ nhớ

 Đọc toán hạng

 Thực hiện lệnh

 Ghi kết quả (nếu có yêu cầu)

Cấu trúc CPU 8086/8088 cho phép thực hiện các bước trên bằng cách phân chia vùng thực hiện trong CPU bởi các bộ phận: Bộ thực hiện lệnh (EU – Execution Unit) để thực hiện lệnh, bộ giao tiếp (BIU – Bus Interface Unit) để lấy lệnh, đọc toán hạng và ghi kết quả Hai bộ này có thể làm việc độc lập với nhau và trong hầu hết các trường hợp có sự trùng lấp giữa thời gian thực hiện và lấy lệnh Kết quả là thời gian lấy lệnh coi như không có vì bộ thực hiện lệnh đã được lấy sẵn bởi bộ giao tiếp BIU

i) Bộ thực hiện lệnh (EU):

Bộ ALU 16 bit trong EU duy trì trạng thái và cờ điều khiển CPU, đồng thời cũng kiểm soát các thanh ghi đa dụng và toán hạng lệnh Tất cả thanh

Chu kỳ lệnh

Trang 10

ghi và đường truyền dữ liệu trong EU thường là 16 bit để được truyền nhanh

ii) Bộ giao tiếp (BIU):

Bộ giao tiếp của CPU 8086/8088 tương tự nhau về mặt chức năng nhưng có số đường giao tiếp ngoài khác nhau tuỳ theo cấu trúc và đặc tính Bus của chúng

Bộ giao tiếp thực hiện tất cả các tác vụ về bus cho EU, dữ kiện được truyền giữa CPU và bộ nhớ hay thiết bị I/O khi có yêu cầu từ EU Mặt khác, trong khi EU đang thực hiện lệnh thì BIU sẽ tìm và lấy lệnh từ trong bộ nhớ vào CPU

iii) Các Thanh ghi đa dụng:

Thanh ghi đa dụng bao gồm 8 thanh và chia thành 2 nhóm:

 Nhóm thanh ghi dữ kiện (4 thanh)

 Nhóm thanh ghi chỉ số đếm (4 thanh)

iv) Thanh ghi đếm lệnh (Instruction Pointer):

Thanh ghi này chứa độ dời (offset) của lệnh kế tiếp đối với địa chỉ đầu của phân đoạn hiện hành

v) Thanh ghi phân đoạn ô nhớ (Segment Register):

Bộ nhớ 1Mb của CPU được chia thành các phân đoạn luận lý Mỗi phân đoạn có thể lên đến 64Kb và CPU có thể cùng một lúc truy xuất đến 4 phân đoạn khác nhau

9 Tín hiệu của CPU:

Trong quá trình thực hiện lệnh, CPU phát ra các tín hiệu cần thiết như mô tả bên dưới Giả sử CPU là chip có 40 chân như hình vẽ

-> Đồng hồ Ф 4

Hình CPU chip 40 chân Trong chu kỳ tìm lệnh, tác vụ thực sự trong chu kỳ này là đọc bộ nhớ Như vậy cần biết địa chỉ của vùng nhớ và phải đọc dữ liệu (hay mã lệnh) vào Giả sử

Trang 11

bộ nhớ có kích thước 64K Do đó, CPU cần có 16 chân địa chỉ và để đọc phải có tín hiệu yêu cầu đọc

D7 R

A13

A14

A15

Quá trình tìm lệnh

Kế tiếp là chu kỳ thực hiên lệnh Như hình CPU chip 40 chân ta có 4 loại lệnh:

 Nạp địa chỉ ô nhớ vào DC (lệnh 1 và 3)

 Tìm nội dung ô nhớ có địa chỉ chứa trong DC và nập vào A (lệnh 2)

 Tìm nội dung ô nhớ có địa chỉ chứa trong DC cộng với nội dung của A và chứa kết quả vào A (lệnh 4)

 Lưu nội dung của A vào ô nhớ có địa chỉ chứa trong DC (lệnh 5)

Với 4 loại lệnh này ta khảo sát các chu kỳ lệnh và tín hiệu điều khiển

Trước tiên là lệnh đơn giản nhất Lệnh A0 (lệnh 2) yêu cầu tìm dữ liệu trong bộ nhớ, việc tìm tương tự như tìm lệnh do đó lệnh đọc bộ nhớ như sau:

Tìm lệnh Tìm dữ liệu

Quá trình Đọc bộ nhớ

địa chỉ

D0 – D7 READ

A0 –A15

Dữ liệu 

READ 

Địa chỉ lệnh Địa chỉ dữ liệu

A0 – A15

D0 – D7

READ

Ф

Trang 12

Lệnh đọc bộ nhớ có 2 chu kỳ đó là tìm lệnh và tìm dữ liệu Điểm khác biệt của hai chu kỳ này là:

 Trong chu kỳ tìm lệnh, A0 – A15 là nộI dung của PC còn trong chu kỳ tìm

dữ liệu là nộI dung của DC

 Trong chu kỳ tìm lệnh, dữ liệu được nhập vào IR, riêng trong chu kỳ tìm dữ liệu, dữ liệu được lưu vào A

Lệnh kế tiếp là lệnh cộng (lệnh 4) có tác dụng có tác dụng là tìm nội dung trong bộ nhớ và cộng vào thanh ghi Việc tìm nội dung bộ nhớ chính là lệnh đọc (lệnh 2) Do đó, các tín hiệu trong hai lệnh là như nhau, điều khác biệt là ở kết quả là lệnh đọc lưu dữ liệu đọc được vào A, còn lệnh cộng thì cộng dữ liệu đọc được vào A

Lệnh 5 lưu nội dung của A vào bộ nhớ có địa chỉ trong DC chính là lệnh viết bộ nhớ Khi đó CPU cần có tín hiệu Write và ở mức cao thay vì Read

A0 D4 Dữ liệu

D7

Địa chỉ

A13 A14 A15

READ

WRITE

Tìm lệnh Tìm dữ liệu

Địa chỉ lệnh Địa chỉ dữ liệu

A0 – A15

D0 – D7

READ

Ф

Trang 13

Cuối cùng là lệnh 1 tác dụng nạp địa chỉ bộ nhớ váo DC và chiếm 3 ô nhớ: 1 ô nhớ là mã lệnh, 2 ô nhớ là địa chỉ Lệnh nạp DC này tương đương với 2 lệnh đọc

bộ nhớ với điểm khác biệt như sau:

 Lệnh 9C yêu cầu 2 lần đọc bộ nhớ thay vì 1 lần như lệnh 80

 Địa chỉ dữ liệu cần đọc chứa trong PC trong khhi lệnh đọc bộ nhớ lấy địa chỉ từ DC

 Dữ liệu đọc được lưu vào nữa byte cao và nữa byte thấp của DC còn đối với lệnh đọc bộ nhớ thì dữ liệu chứa trong A

ALU

PC

ALU

 

Đối với CPU thông minh chỉ cần 3 chu kỳ để thực hiện lệnh nạp DC

Ф A0-A15

Tìm lệnh Tìm địa chỉ đầu Tìm địa chỉ sau Lệnh nạp DC có 3 chu kỳ

Mặt khác, để đơn giản hoá CPU, nội dung của PC chỉ xuất ở chu kỳ đầu (tương

tự DC chỉ xuất ở chu kỳ sau) do đó, lệnh nạp DC thường chiếm 6 chu kỳ (xem hình vẽ trang sau)

Địa chỉ lệnh Địa chỉ lệnh 1 Địa chỉ lệnh 2

Trang 14

Tìm Lệnh Tìm địa chỉ đầu Tìm địa chỉ sau

Lệnh nạp DC có 6 chu kỳ

10 Qui trình giải mã của Control Unit:

Hoạt động của CPU thật ra thực ra bao gồm việc kích hoạt các phần tử luận lý của nó bằng các tín hiệu luận lý Ví dụ như mạch bù có nhiệm vụ làm bù 8 thanh chốt từ một tín hiệu phát ra từ CU Dĩ nhiên ta không cần làm bù 8 thanh chốt của mạch bù mà thực ra muốn làm bù một từ là A ta chuyển nội dung của từ A vào mạch bù Sau khi làm bù xong chuyển giá trị lại cho A Việc làm bù này được thông qua 5 bước sau:

 Chuyển nội dung từ A vào đường truyền dữ liệu

 Chuyển nội dung từ đường truyền dữ liệu vào mạch bù

 Kích hoạt mạch bù

 Chuyển nội dung từ mạch bù ra dường truyền dữ liệu

 Chuyển nội dung từ đường truyền dữ liệu ra từ A

Mỗi bước trên được gọi là vi lệnh (micro instruction) được phát động từ một tín hiệu của CU

Bằng cách đưa ra một loạt điều khiển, CU thực hiện một dãy vi lệnh tạo thành một vĩ lệnh (macro instruction), đó chính là một lệnh của CPU

Để làm bù một từ A, CU phải có 5 mã nhị phân tương ứng 5 tín hiệu, dãy 5 mã nhị phân này được gọi là vi trình

Hay Vi trình gồm một dãy các số nhị phân chứa trong CU

Và Vĩ trình chính là chương trình dưới dạng ngôn ngữ máy được chứa trong ROM hay RAM Mỗi mã lệnh của vĩ trình thực hiện một vi trình

Dữ liệu Dữ liệu

DC PC ALU

Đường truyền

dữ liệu

Dữ liệu CU Vĩ trình CU

Vi trình

Trang 15

Ví dụ các tín hiệu của CU

C0, C1 C0 = 0, C1 = 0 Không chuyển dữ liệu vào ra đường truyền dữ liệu / thanh ghi địa chỉ

C0 = 0, C1 = 1 Chuyển dữ liệu vào đường truyền dữ liệu hay thanh ghi địa chỉ

C0 = 1, C1 = 0 Chuyển dữ liệu ra khỏi đường truyền dữ liệu hay thanh ghi địa chỉ C1 = 1, C0 = 1 Lấy vi lệnh trong CU

C2, C3 Khi C0 = 1, C1= 0 hoặc C0= 0, C1= 1 thì tín hiệu này được giải mã để chọn dòng dữ liệu C4, C5

C6, C7, C8 8 tín hiệu này xác định các tác vụ trong ALU

WRITE Nối trực tiếp vào 2 bit dữ liệu của CU

READ

C, O, S, Z 4 bit trạng thái nối trực tiếp vào 4 bit dữ li ệu của CU

Ví dụ về qui trình tìm lệnh:

Mã vi lệnh

Lệnh

Ngày đăng: 24/10/2013, 03:15

HÌNH ẢNH LIÊN QUAN

Hình CPU chip 40 chân Trong chu kỳ tìm lệnh, tác vụ thực sự trong chu kỳ này là đọc bộ nhớ - Cổng logic và đại số logic. Chương VI:
nh CPU chip 40 chân Trong chu kỳ tìm lệnh, tác vụ thực sự trong chu kỳ này là đọc bộ nhớ (Trang 10)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w