Tài liệu Giáo trình Kiến trúc máy tính I - Chương 7: Tổ chức bộ xử lý: Chương VII: Tổ chức Bộ xử lý
191
Chương VII: TỔ CHỨC BỘ XỬ Lí
Trong cỏc chương trước chỳng ta ủó cỏc khỏi niệm cơ bản
liờn quan ủến cỏc phần khỏc nhau của mỏy tớnh. Trong chương này
chỳng ta tập trung vào bộ phận chớnh yếu của mọi mỏy tớnh – bộ
xử lý trung tõm (central processing unit - CPU). Chức năng chớnh
yếu của CPU là thực thi cỏc lệnh ủược lưu trong bộ nhớ chớnh. Như
ủó ủề cập trong phần giới thiệu, do giỏo trỡnh này ủược thiết kế
dành cho sinh viờn học ngay học kỳ ủầu tiờn cho nờn chỳng ta chỉ
ủề cập ủến cỏc vấn ủề ở mức ủộ ủơn giản.
7.1. Tổ chức bộ xử lý trung tõm
ðể hiểu ủược cỏch tổ chức trong CPU như thế nào chỳng ta
hóy xem những ủũi hỏi ở bờn trong nú và những gi nú phải thực
hiện. Núi chung những cụng việc nú phải làm là:
- Tỡm nạp lệnh (Fetch Instruction): CPU ủọc một lệnh từ
bộ nhớ
- Diễn giải lệnh (Interpret Instruction): Lệnh ủược giải
mó và xỏc ủịnh xem hành ủộng gỡ ủũi hỏi thực hiện
- Tỡm nạp dữ liệu (Fetch data): ðể thực hiệ...
31 trang |
Chia sẻ: hunglv | Lượt xem: 1722 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Kiến trúc máy tính I - Chương 7: Tổ chức bộ xử lý, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương VII: Tổ chức Bộ xử lý
191
Chương VII: TỔ CHỨC BỘ XỬ LÝ
Trong các chương trước chúng ta đã các khái niệm cơ bản
liên quan đến các phần khác nhau của máy tính. Trong chương này
chúng ta tập trung vào bộ phận chính yếu của mọi máy tính – bộ
xử lý trung tâm (central processing unit - CPU). Chức năng chính
yếu của CPU là thực thi các lệnh được lưu trong bộ nhớ chính. Như
đã đề cập trong phần giới thiệu, do giáo trình này được thiết kế
dành cho sinh viên học ngay học kỳ đầu tiên cho nên chúng ta chỉ
đề cập đến các vấn đề ở mức độ đơn giản.
7.1. Tổ chức bộ xử lý trung tâm
ðể hiểu được cách tổ chức trong CPU như thế nào chúng ta
hãy xem những địi hỏi ở bên trong nĩ và những gi nĩ phải thực
hiện. Nĩi chung những cơng việc nĩ phải làm là:
- Tìm nạp lệnh (Fetch Instruction): CPU đọc một lệnh từ
bộ nhớ
- Diễn giải lệnh (Interpret Instruction): Lệnh được giải
mã và xác định xem hành động gì địi hỏi thực hiện
- Tìm nạp dữ liệu (Fetch data): ðể thực hiện câu lệnh cĩ
thể địi hỏi đọc dữ liệu từ bộ nhớ hoặc từ các thiết bị
nhập xuất
- Xử lý dữ liệu (Process data): Việc thi hành lệnh cĩ thể
địi hỏi thực hiện một vài phép tính số học hay logic
trên các dữ liệu tìm nạp vào
- Ghi dữ liệu (Write data): Kết quả thực thi lệnh cũng cĩ
thể địi hỏi phải ghi dữ liệu vào bộ nhớ hoặc ghi ra các
thiết bị nhập xuất.
ðể làm được các việc như vậy địi hỏi CPU cần lưu một số
dữ liệu tạm thời. Nĩ phả nhớ vị trí của lệnh vừa thực hiện cũng
như nĩ cần phải biết được ở đâu cĩ thể nhận được lệnh tiếp theo để
thực hiện. Nĩ cần lưu tập lệnh và dữ liệu tạm thời trong khi thực thi
Chương VII: Tổ chức Bộ xử lý
192
một lệnh nào đĩ. Nĩi cách khác CPU cần một bộ nhớ trong nhỏ để
tiện lợi làm việc.
Nĩi chung để thực hiện các việc vừa liệt kê ở trên, một bộ
xử lý trung tâm đơn giản cần bao gồm ba nguyên tố quan trọng
nhất: tập các thanh ghi, một bộ xử lý logic số học (Arithmetic
Logic Unit - ALU) và một bộ điều khiển (Control Unit - CU). Tổ
chức một máy tính đơn giản gồm CPU và tương tác của nĩ với bộ
nhớ chính và các thiết bị nhập xuất cĩ thể biểu diễn như hình 7.1.
Hình 7.1. Tổ chức một máy tính đơn giản
Bộ các thanh ghi của các loại máy tính là khác nhau và
thường chia làm hai loại, các thanh ghi được dùng với mục đích
chung (general-purpose registers), và các thanh ghi với mục đích
đặc biệt (special-purpose registers). Các thanh ghi mục đích chung
được sử dụng cho bất kỳ mục đích nào, ví dụ như cĩ thể dùng nĩ
làm nơi lưu trữ các loại dữ liệu khác nhau, dùng làm lưu các tốn
hạng của một lệnh. Trong khi các thanh ghi với mục đích đặc biệt
chỉ cĩ một số chức năng bên trong CPU, ví dụ như bộ đếm chương
Chương VII: Tổ chức Bộ xử lý
193
trình (progam counter - PC) là một thanh ghi với mục đích đặc biệt
đĩ là chỉ dùng để lưu địa chỉ của lệnh cần thực hiện tiếp theo. Một
ví dụ khác của thanh ghi với mục đích đặc biệt là thanh ghi mã lệnh
(Instruction Registers – IR), thanh ghi này chỉ được dùng để lưu mã
lệnh đang thực hiên tại thời điểm hiện tại.
Bộ logic số học ALU cung cấp một mạch số cần thiết để
thực hiện các phép tính số học (như cộng, trừ, nhân , chia), logic
(như NOT, AND, OR) và các phép tốn dịch chuyển trong bộ lệnh.
Bộ điều khiển (control block) chịu trách nhiệm điều khiển
mọi hoạt động của CPU như tìm nạp lệnh từ bộ nhớ chính, giải mã
nĩ, định loại xem nĩ thuộc loại nào và cuơi cùng là ra lệnh cho các
bộ phận trong CPU làm việc gì.
CPU tìm nạp lệnh từ bộ nhớ chính, đọc dữ liệu từ bộ nhớ
chính, ghi dữ liệu ngược lại đĩ khi cần và truyền các dữ liệu từ các
thiết bị ngoại vi vào máy tính cũng như đưa các dữ liệu trong máy
tính ra các thiết bị ngoại vi. Các thiết bị ngoại vi ở đây cĩ thể là ổ
đã cứng, máy in, flash memory,…
Trong hình 7.2 cho ta sơ đồ tổng quát của CPU một cách tỷ
mỉ hơn. Trong đĩ chỉ ra việc truyền dữ liệu và đường điều khiển
logic cũng được chỉ ra bao gồm cả một nguyên tố gọi là trục CPU
nội (Internal CPU bus). Nguyên tố này được cần để truyền dữ liệu
giữa các thanh ghi khác nhau và ALU, bởi vì trên thực tế thì ALU
thực thi chỉ trên các dữ liệu nằm ở bộ nhớ bên trong CPU.
Chương VII: Tổ chức Bộ xử lý
194
Hình 7.2. Cấu trúc bên trong của CPU
7.2. Bộ điều khiển
Giống như trong một trung đội thì mọi hoạt động được điều
khiển bởi trung đội trưởng, bộ điều khiển chịu trách nhiệm điều
khiển mọi hoạt động của CPU. Bộ điều khiển tạo các tín hiệu điều
khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ các thanh ghi
đến bus hoặc tín hiệu viết vào các thanh ghi), điều khiển các tác vụ
mà các bộ phận chức năng phải làm (điều khiển ALU, điều khiển
đọc và viết vào bộ nhớ trong...). Bộ điều khiển cũng tạo các tín
hiệu giúp các lệnh được thực hiện một cách tuần tự.
ðể thiết kế một bộ điều khiển, ta cĩ thể dùng một trong hai
cách là dùng mạch điện tử hoặc dùng vi chương trình
(microprogram).
Chương VII: Tổ chức Bộ xử lý
195
Bộ điều khiển mạch điện tử
Trong chương 5 chúng ta đã học về mạch tuần tự. Một bộ
điều khiển mạch điện tử cĩ nguyên lý hoạt động như một mạch
tuần tự. Tức là sẽ cĩ các trạng thái và các đường tín hiệu mà sự
thay đổi của các tín hiệu tại một thời điểm nhất định sẽ làm trạng
thái giữ nguyên hoặc chuyển sang một trạng thái mới.
ðể hiểu được vận hành của bộ điều khiển mạch điện tử,
chúng ta xét đến mơ tả về Automate (mạch tự động hĩa) trạng thái
hữu hạn như một mạch tuần tự cĩ nhiều hệ thống hay nhiều thành
phần mà ở mỗi thời điểm xem xét đều cĩ một trạng thái (state).
Mục đích của trạng thái là ghi nhớ những gì cĩ liên quan
trong quá trình hoạt động của hệ thống. Vì chỉ cĩ một số trạng thái
nhất định nên nĩi chung khơng thể ghi nhớ hết tồn bộ lịch sử của
hệ thống, do vậy nĩ phải được thiết kế cẩn thận để ghi nhớ những
gì quan trọng.
Ưu điểm của hệ thống (chỉ cĩ một số hữu hạn các trạng
thái) đĩ là cĩ thể cài đặt hệ thống với một lượng tài nguyên cố
định. Chẳng hạn, chúng ta cĩ thể cài đặt Automate trạng thái hữu
hạn trong phần cứng máy tính ở dạng mạch điện hay một dạng
chương trình đơn giản, trong đĩ, nĩ cĩ khả năng quyết định khi chỉ
biết một lượng giới hạn dữ liệu hoặc bằng cách dùng vị trí trong
đoạn mã lệnh để đưa ra quyết định.
Theo tổ chức điều khiển cứng, luận lý điều khiển được cài
đặt qua các cổng , mạch lật, mạch giải mã và các mạch số khác.
Thuận lợi là cĩ thể tối ưu để tạo ra chế độ nhanh cho tác vụ
Theo tổ chức điều khiển vi trình, thơng tin điều khiển được
lưu trong bộ nhớ điều khiển, bộ nhớ điều khiển được lập trình để
khởi động dãy vi tac vụ theo yêu cầu. Khi thay đổi thiết kế, cần
thay đổi cách kết nối các thành phần nếu tổ chức theo kiểu điều
khiển cài cứng. Nếu tổ chức theo điều khiển vi trình chỉ cần cập
nhật vi trình trong bộ nhớ điều khiển.
Chương VII: Tổ chức Bộ xử lý
196
Hình 7.3. cho ta sơ đồ khối một bộ điều khiển cơ bản. Lệnh
được đọc từ bộ nhớ và đưa vào thanh ghi lệnh IR. Thanh ghi lệnh
thì như trong chương 6 chúng ta đã biết, trong đĩ cĩ phần mã hĩa
vi tác vụ hay opcode sẽ được qua một mạch giải mã để biết được
mã tác vụ phải làm là gì. Sau khi giải mã, các tín hiệu này được đưa
vào mạch điều khiển gồm các cổng điều khiển.
ðể điều khiển các hoạt động được đồng bộ, ta dùng một bộ
tạo các thời hiệu, mỗi thời hiệu ứng với một thời điểm nhất định.
Các thời hiệu này cùng với các tín hiệu từ bộ giải mã và từ các tín
hiệu khác trong phần cịn lại của thanh ghi IR sau khi qua các cổng
điều khiển sẽ cho ta các tín hiệu điều khiển cần thiết. Các tín hiệu
điều khiển cĩ thể là đưa dữ liệu một thanh ghi nào đĩ lên BUS, đưa
dữ liệu từ trên BUS vào thanh ghi, mở tín hiệu ghi vào một thanh
ghi, đưa ra tín hiệu đọc/ghi vào bộ nhớ chính, khởi động ngắt để
truyền dữ liệu ra HDD, máy in,…
Mã tác vụ địa chỉ bộ nhớ, thanh ghi,…
Mạch giải mã
nxm
Các cổng
điều khiển
Tín hiệu
điều khiển
m-1
Dm-1
…
0
Bộ tạo các
thời hiệu
D0
T
Các tín hiệu khác
(INR, CLR,…)
Clock
IR
Hình 7.3. Sơ đồ khối bộ điều khiển máy tính cơ bản
Chương VII: Tổ chức Bộ xử lý
197
Bộ điều khiển vi chương trình
Thay vì bộ điều khiển cứng dùng mạch tổ hợp các cổng để
cho ra các tín hiệu điều khiển thì điều khiển vi trình dùng một vi
chương trình lập sẵn nằm trong bộ nhớ điều khiển để khởi động
dãy vi tac vụ theo yêu cầu.
Bộ điều khiển bằng vi chương trình được dùng rộng rãi
trong các bộ xử lý CISC. Bộ xử lý này cĩ tập lệnh phức tạp với các
lệnh cĩ chiều dài khác nhau và cĩ dạng thức phức tạp. Trong các
bộ xử lý CISC, người ta cài đặt một lệnh mã máy bằng cách viết
một vi chương trình. Như vậy cơng việc khá đơn giản và rất hữu
hiệu. Các sai sĩt trong thiết kế automat điều khiển cũng dễ sửa đổi.
7.3. Bộ thanh ghi
Các thanh ghi là một loại bộ nhớ đặc biệt nhanh nằm bên
trong CPU và được dùng để tạo ra và lưu trữ các kết quả của các
lệnh trong CPU và các phép tốn khác. Các loại máy tính khác
nhau cĩ các bộ thanh ghi khác nhau. Chúng khác nhau về số lượng
các thanh ghi, các loại thanh ghi và cả chiếu dài của mỗi thanh ghi.
Chúng cũng khác nhau trong cách dùng cho mỗi thanh ghi.
Thanh ghi muc đích chung cĩ thể được dùng cho nhiều mục
đích và được nhà lập trình dùng để gán cho những trạng thái khác
nhau của các hàm, các biến.
Thanh ghi cĩ mục đích đặc biệt chỉ được dùng cho một số
chức năng đặc biệt. Trong một số trường hợp, một vài thanh ghi chỉ
được dùng để lưu trữ dữ liệu và khơng thể dùng trong tính tốn địa
chỉ của các tốn hạng.
Chiều dài của thanh ghi phải đủ để lưu trữ hầu hết các loại
dữ liệu, đặc biệt là thanh ghi địa chỉ phải đủ dài để cĩ thể lưu được
địa chỉ lớn nhất.
Số lượng thanh ghi trong một kiến trúc máy tính ảnh hưởng
trực tiếp đến việc thiết kế bộ lệnh. Nếu số lượng thanh gi ít sẽ dẫn
đến việc phải sử dụng tham chiếu hay con trỏ tới bộ nhớ nhiều hơn
làm giảm đáng kể đến tốc độ thực thi của chương trình.
Chương VII: Tổ chức Bộ xử lý
198
Một dạng khác của các thanh ghi được dùng để lưu các bit
trạng thái của bộ xử lý hay là các cờ trạng thái. Những bit này thay
đổi tùy theo kết quả thực hiện một lệnh nào đĩ trong CPU
Thanh ghi truy cập bộ nhớ
Cĩ hai thanh ghi được dùng đặc biệt trong các lệnh đọc/ghi
với bộ nhớ: thanh ghi dữ liệu bộ nhớ (memory data register -
MDR) và thanh ghi địa chỉ bộ nhớ (memory address regiater –
MAR). Hai thanh ghi này được CPU sử dụng đặc biệt và các nhà
lập trình khơng thể truy cập trực tiếp vào chúng.
Trong thứ tự thực hiện một lệnh ghi vào một vùng nhớ đặc
biệt, MDR và MAR được dùng như sau:
1. Một từ cần lưu vào một vị trí nào đĩ trong bộ nhớ, đầu
tiên sẽ được CPU tải vào thanh ghi MDR
2. ðịa chỉ của vùng nhớ đĩ (vùng nhớ sẽ ghi dữ liệu vào)
được CPU tải vào trong MAR
3. Sau cùng bộ điều khiển sẽ phát ra tín hiệu điều khiển
“ghi” (write) để ghi dữ liệu nằm trên MDR vào địa chỉ
nằm trên MAR.
Tương tự khi thực hiện một lệnh đọc (read) từ bộ nhớ,
thanh ghi MDR và MAR sẽ được dùng như sau:
1. ðịa chỉ của từ nhớ nằm trong bộ nhớ cần đọc được đưa
vào MAR
2. Bộ điều khiển sẽ phát ra tín hiệu điều khiển “đọc”
(read) để đọc dữ liệu nằm trong bộ nhớ.
3. Dữ liệu nằm trong bộ nhớ cĩ địa chỉ chứa trong MAR sẽ
được tải vào trong MDR
Thanh ghi chuyển tải lệnh
Cĩ hai thanh ghi rất quan trọng được dùng để lưu các câu
lệnh cho việc thực thi của chương trình là: Bộ đếm chương trình
(program counter – PC) và thanh ghi lệnh (instruction register –
IR).
Chương VII: Tổ chức Bộ xử lý
199
Thanh ghi PC dùng để lưu đạ chỉ của lệnh tiếp theo qua đĩ
sẽ điều khiển thứ tự thực hiện các lệnh trong một chương trình. Các
lệnh thực hiện lần lượt được tìm thấy và lưu vào trong thanh ghi
IR. Tại mỗi thời điểm chỉ cĩ một lệnh được lưu trong IR. Sau khi
đã tìm và đem một lệnh về cho IR, thanh ghi PC sẽ được nạp một
giá trị mới là địa chỉ của lệnh tiếp theo.
Thanh ghi trạng thái
Các thanh ghi trạng thái hay là các cờ trạng thái được sử
dụng để giữ các thơng tin về trạng thái của quá trình thực thi lệnh.
Một số kiến trúc máy tính chứa một thanh ghi đặc biệt gọi là thanh
ghi từ trạng thái của chương trình (program stature word – PSW).
Trong PSW chứa các bit trạng thái cho biết kết quả của các phép
tính số học (cĩ bằng 0 khơng?cĩ số thừa khơng?...), trạng thái ngắt,
thơng tin bảo vệ bộ nhớ, tình trạng của bộ xử lý,…
Các thanh ghi họ 80x86
Trong các thế hệ máy tính 32 bit của Intel như 386,486 và
Pentium cĩ ba nhĩm thanh ghi, đĩ là:
- Thanh ghi mục đích chung
- Thanh ghi segment
- Thanh ghi đếm chương trình PC và thanh ghi cờ
trạng thái
Trong hình 7.4 cho ta thấy ba nhĩm này. Nhĩm thứ nhất là
các thanh ghi mục đích chung được đặt tên bằng các ký tự
A,B,C,D,SI (source index), DI (destination index), SP (stack
pointer) và BP (base pointer). Nhĩm thứ hai bao gồm các thanh ghi
CS (code segment), SS (stack segment) và 4 thanh ghi đoạn dữ liệu
DS, ES, FS và GS. Nhĩm thanh ghi thứ ba bao gồm thanh ghi lệnh
IR và thanh ghi trạng thái. Trong số những bit trạng thái, 5 bit đầu
tiên đồng nhất với các bit của bộ vi xử lý 8 bit trước đây 8085. Các
bit tiếp theo 6-11 giống như được giới thiệu trong 8086. Các bit 12-
14 được giới thiệu trong 80286 trong khi các bit 16-17 trong
80386. Bit flag 18 trong 80486. Trong đĩ cịn nhiều bit chưa được
Chương VII: Tổ chức Bộ xử lý
200
dùng tới và để làm dự trữ cho những mục đích cĩ thể xuất hiện sau
này.
Hình 7.4. Các thanh ghi họ 80x86
7.4. ðường đi dữ liệu (Datapath)
Phần đường đi dữ liệu gồm cĩ bộ logic-số học (ALU:
Arithmetic and Logic Unit), các mạch dịch, các thanh ghi và các
đường nối kết các bộ phận trên. Phần này chứa hầu hết các trạng
thái của bộ xử lý. Ngồi các thanh ghi tổng quát, phần đường đi dữ
liệu cịn chứa thanh ghi đếm chương trình (PC: Program Counter),
thanh ghi trạng thái (SR: Status Register), các thanh ghi địa chỉ bộ
nhớ MAR, thanh ghi số liệu bộ nhớ MDR, bộ đa hợp (MUX:
Multiplexor), đây là điểm cuối của các kênh dữ liệu - CPU và bộ
nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các
kênh dữ liệu, các hệ thống bus
Chương VII: Tổ chức Bộ xử lý
201
Nhiệm vụ chính của phần đường đi dữ liệu là đọc các tốn
hạng từ các thanh ghi tổng quát, thực hiện các phép tính trên tốn
hạng này trong ALU và lưu trữ kết quả trong các thanh ghi tổng
quát. Ở ngã vào và ngã ra các thanh ghi tổng quát cĩ các mạch chốt
A, B, C. Như đã đề cập ở trên, thơng thường, số lượng các thanh
ghi tổng quát là 32.
Phần đường đi của dữ liệu chiếm phân nửa diện tích của bộ
xử lý nhưng là phần dễ thiết kế và cài đặt trong bộ xử lý.
7.4.1. Tổ chức One-Bus
Các thanh ghi CPU và ALU dùng một BUS đơn để di
chuyển dữ liệu ra vào giữa chúng với nhau. Vì một BUS chỉ cĩ thể
sử dụng một dữ liệu di chuyển trong một chu kỳ đồng hồ, cho nên
một phép tốn cĩ hai tốn hạng sẽ phải cần hai chu kỳ đồng hồ để
tìm và nạp các tốn hạng cho ALU. Dạng tổ chức BUS này là đơn
giản nhất nhưng nĩ bị nhiều hạn chế về số lượng dữ liệu được
chuyển tải trong một chu kỳ đồng hồ nĩi chung đã làm chậm cả hệ
thống lại rất nhiều.
Hình 7.5 cho ta sơ đồ tổ chức đường đi dữ liệu one-bus . Nĩ
bao gồm bộ các thanh ghi đa mục đích, một thanh ghi địa chỉ bộ
nhớ MAR, một thanh ghi dữ liệu bộ nhớ MDR, một thanh ghi lệnh
IR, một thanh ghi đếm chương trình PC và bộ logic số học ALU.
Hình 7.5. Tổ chức One-Bus
Chương VII: Tổ chức Bộ xử lý
202
7.4.2. Tổ chức Two-Bus, Three-Bus
Sử dụng hai BUS để tổ chức đường đi dữ liệu là một giải
pháp giúp cải thiện tốc độ rất nhiều so với cơng nghệ dùng one-bus.
Trong trường hợp này các thanh ghi đa mục đích được nối với cả
hai bus. Dữ liệu cĩ thể truyền từ hai thanh ghi khác nhau đến đầu
vào của ALU tại cùng một thời điểm. Do vậy, một lệnh cĩ hai tốn
hạng cĩ thể tìm và nạp trong cùng một chu kỳ đồng hồ và như vậy
rõ ràng tốc độ xử lý lệnh lúc này đã tăng gấp đơi. Hơn nữa, trong
cấu trúc này (hình 7.6) cịn cĩ một thanh ghi đệm (buffer register)
cĩ thể cần thiết để lưu trữ dữ liệu đầu ra của ALU khi hai bus đạng
bận chuyển tải dữ liệu.
Trong hình 7.6(a) cho ta thấy cách tổ chức kiến trúc kiểu
two-bus này. Trong một số trường hợp, một bus cĩ thể được dùng
để di chuyển dữ liệu vào thanh ghi (in-bus). Ở trừơng hợp này một
thanh ghi đệm thêm cĩ thể được dùng như là một bộ nhớ tạm thời
trước khi đưa vào ALU. ðầu ra của ALU được nối trực tiếp với in-
bus và cho phép chuyển kết quả tính tốn tới một trong các thanh
ghi. Hình 7.6(b) cho ta tổ chức two-bus với in-bus và out-bus.
Trong tổ chức three-bus thì hai trong số đĩ được dùng như
là các bus nguồn, bus cịn lại như là bus đích. Các bus nguồn
chuyển dữ liệu ra khỏi thanh ghi (out-bus), và bus đích cĩ thể
chuyển dữ liệu vào trong các thanh ghi (in-bus). Mỗi đầu của out-
bus được nối với đầu vào của ALU. ðầu ra của ALU thì nối trực
tiếp với in-bus. Như vậy chúng ta lại cĩ thể truyền dữ liệu nhiều
hơn trong cùng một chu kỳ đồng hồ. Tuy nhiên việc tăng các bus
lên sẽ làm tăng độ phức tạp của phần cứng lên nhiều hơn, vì vậy
tùy theo mức độ cần thiết mà các loại máy tính khác nhau sẽ cĩ số
lượng bus khác nhau. Tổ chức máy tính đơn giản loại three-bus cĩ
thể mih họa như hình 7.7.
Chương VII: Tổ chức Bộ xử lý
203
Hình 7.6. Tổ chức đường truyền dữ liệu dạng two-bus
Chương VII: Tổ chức Bộ xử lý
204
Hình 7.7. Tổ chức đường truyền dữ liệu dạng three-bus
7.5. Diễn tiến thi hành lệnh mã máy(CPU instruction
cycle)
Cơng việc của CPU diễn ra liên tục và việc thực hiện các
lệnh diễn ra như trong hình 7.8. Các lệnh được lấy ra từ bộ nhớ
chính và khi CPU tìm thấy một lệnh, nĩ sẽ phân tích lệnh đĩ để
thực thi, sau đĩ lại sẽ tìm nạp lệnh tiếp theo và cứ như vậy diễn ra
liên tục.
Việc thi hành một lệnh mã máy cĩ thể chia thành 5 giai đoạn sau:
ðọc lệnh (IF: Instruction Fetch)
Giải mã lệnh (ID: Instruction Decode)
Thi hành lệnh (EX: Execute)
Thâm nhập bộ nhớ trong hoặc nhảy (MEM: Memory
access)
Lưu trữ kết quả (RS: Result Storing).
Mỗi giai đoạn được thi hành trong một hoặc nhiều chu kỳ xung
nhịp.
Chương VII: Tổ chức Bộ xử lý
205
Hình 7.8. Hoạt động của CPU
1. ðọc lệnh (fetch instruction):
Chuỗi các sự kiện trong một lần tìm đọc lệnh cị thể tổng
quát như sau:
1. Dữ liệu trong PC được load vào MAR: MAR ← PC
2. Giá trị trong thanh ghi PC tăng lên 1: PCPC+1
3. Kết quả của lệnh đọc từ bộ nhớ, dữ liệu được load vào
MDR: MDRM[MAR]
4. Dữ liệu trong MDR được load vào IR: IR ← M[MAR]
Bộ đếm chương trình PC được đưa vào MAR . Lệnh
được đọc từ bộ nhớ trong, tại các ơ nhớ cĩ địa chỉ nằm
trong MAR và được đưa vào thanh ghi lệnh IR. Thứ tự thực
hiện lệnh theo thời gian đối với loại one-bus như sau:
Chương VII: Tổ chức Bộ xử lý
206
Nếu dùng three-bus như hình 7.7 thì ta cĩ thứ tự các
bước như sau:
2. Giải mã lệnh và đọc các thanh ghi nguồn:
A ← Rs1
B ← Rs2
PC ← PC + 4
Lệnh được giải mã. Kế đĩ các thanh ghi Rs1 và Rs2
được đưa vào A và B.Thanh ghi PC được tăng lên để chỉ tới
lệnh kế đĩ.
ðể hiểu rõ giai đoạn này, ta lấy dạng thức của một
lệnh làm tính tiêu biểu sau đây:
Chương VII: Tổ chức Bộ xử lý
207
Các thanh ghi nguồn Rs1 và Rs2 được sử dụng tuỳ
theo tác vụ, kết quả được đặt trong thanh ghi đích Rd.
Ta thấy việc giải mã được thực hiện cùng lúc với
việc đọc các thanh ghi Rs1 và Rs2 vì các thanh ghi này luơn
nằm tại cùng vị trí ở trong lệnh.
3. Thi hành lệnh:
Tuỳ theo loại lệnh mà một trong ba nhiệm vụ sau đây được
thực hiện:
- Liên hệ tới bộ nhớ
MAR ← ðịa chỉ do ALU tính tuỳ theo kiểu định vị
(Rs2).
MDR ← Rs1
ðịa chỉ hiệu dụng do ALU tính được đưa vào MAR
và thanh ghi nguồn Rs1 được đưa vào MDR để được lưu
vào bộ nhớ trong.
- Một lệnh của ALU
Ngã ra ALU ← Kết quả của phép tính
ALU thực hiện phép tính xác định trong mã lệnh,
đưa kết quả ra ngã ra.
- Một phép nhảy
Ngã ra ALU ← ðịa chỉ lệnh tiếp theo do ALU tính.
ALU cộng địa chỉ của PC với độ dời để làm thành
địa chỉ đích và đưa địa chỉ này ra ngã ra. Nếu là một phép
Chương VII: Tổ chức Bộ xử lý
208
nhảy cĩ điều kiện thì thanh ghi trạng thái được đọc quyết
định cĩ cộng độ dời vào PC hay khơng.
4. Thâm nhập bộ nhớ trong hoặc nhảy lần cuối
Giai đoạn này thường chỉ được dùng cho các lệnh
nạp dữ liệu, lưu giữ dữ liệu và lệnh nhảy.
- Tham khảo đến bộ nhớ:
MDR ← M[MAR] hoặc M[MAR] ← MDR
Số liệu được nạp vào MDR hoặc lưu vào địa chỉ mà
MAR trỏ đến.
- Nhảy:
If (điều kiện), PC ← ngả ra ALU
Nếu điều kiện đúng, ngã ra ALU được nạp vào PC.
ðối với lệnh nhảy khơng điều kiện, ngả ra ALU luơn được
nạp vào thanh ghi PC.
5. Lưu trữ kết quả
Rd ← Ngã ra ALU hoặc Rd ← MDR
Lưu trữ kết quả trong thanh ghi đích.
7.6. Xử lý ngắt (Interrupt Handling)
Ngắt là một sự kiện xảy ra một cách ngẫu nhiên trong máy
tính và làm ngưng tính tuần tự của chương trình (nghĩa là tạo ra
một lệnh nhảy). Phần lớn các nhà sản xuất máy tính (ví dụ như
IBM, INTEL) dùng từ ngắt quãng để ám chỉ sự kiện này, tuy nhiên
Chương VII: Tổ chức Bộ xử lý
209
một số nhà sản xuất khác dùng từ “ngoại lệ”, “lỗi”, “bẫy” để chỉ
định hiện tượng này.
Bộ điều khiển của CPU là bộ phận khĩ thực hiện nhất và
ngắt quãng là phần khĩ thực hiện nhất trong bộ điều khiển. ðể
nhận biết được một ngắt quãng lúc đang thi hành một lệnh, ta phải
biết điều chỉnh chu kỳ xung nhịp và điều này cĩ thể ảnh hưởng đến
hiệu quả của máy tính.
Người ta đã nghĩ ra “ngắt quãng” là để nhận biết các sai sĩt
trong tính tốn số học, và để ứng dụng cho những hiện tượng thời
gian thực. Bây giờ, ngắt quãng được dùng cho các cơng việc sau
đây:
Ngoại vi địi hỏi nhập hoặc xuất số liệu.
Người lập trình muốn dùng dịch vụ của hệ điều
hành.
Cho một chương trình chạy từng lệnh.
Làm điểm dừng của một chương trình.
Báo tràn số liệu trong tính tốn số học.
Trang bộ nhớ thực sự khơng cĩ trong bộ nhớ.
Báo vi phạm vùng cấm của bộ nhớ.
Báo dùng một lệnh khơng cĩ trong tập lệnh.
Báo phần cứng máy tính bị hư.
Báo điện bị cắt.
Chương VII: Tổ chức Bộ xử lý
210
Dù rằng ngắt quãng khơng xảy ra thường xuyên nhưng bộ
xử lý phải được thiết kế sao cho cĩ thể lưu giữ trạng thái của nĩ
trước khi nhảy đi phục vụ ngắt quãng. Sau khi thực hiện xong
chương trình phục vụ ngắt, bộ xử lý phải khơi phục trạng thái của
nĩ để cĩ thể tiếp tục cơng việc.
ðể đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận
ngắt sau khi thực hiện xong lệnh đang chạy. Khi một ngắt xảy ra,
bộ xử lý thi hành các bước sau đây:
1. Thực hiện xong lệnh đang làm.
2. Lưu trữ trạng thái hiện tại.
3. Nhảy đến chương trình phục vụ ngắt
4. Khi chương trình phục vụ chấm dứt, bộ xử lý khơi phục
lại trạng thái cũ của nĩ và tiếp tục thực hiện chương trình
mà nĩ đang thực hiện khi bị ngắt.
Bảng 7.1 cho ta thấy thứ tự thực hiện các sự kiện khi xảy ra
ngắt, ở đây t1<t2<t3.
Bảng 7.1. Thực hiện các vi tác vụ khi ngắt
Chương VII: Tổ chức Bộ xử lý
211
7.7. Kỹ thuật ống dẫn (PIPELINE)
ðây là một kỹ thuật làm cho các giai đoạn khác nhau của
nhiều lệnh được thi hành cùng một lúc.
Ví dụ: Chúng ta cĩ những lệnh đều đặn, mỗi lệnh được thực
hiện trong cùng một khoảng thời gian. Giả sử, mỗi lệnh được thực
hiện trong 5 giai đoạn và mỗi giai đoạn được thực hiện trong 1 chu
kỳ xung nhịp. Các giai đoạn thực hiện một lệnh là:
• Lấy lệnh (IF: Instruction Fetch),
• Giải mã (ID: Instruction Decode),
• Thi hành (EX: Execute),
• Thâm nhập bộ nhớ (MEM: Memory Access),
• Lưu trữ kết quả (RS: Result Storing).
Hình 7.9 cho thấy để xử lý 5 lệnh chúng ta cần 9 chu kỳ
xung nhịp. Trong chu kỳ xung nhịp thứ nhất, lệnh thứ i nhất được
tìm nạp vào. Trong chu kỳ xung nhịp thứ hai, trong khi lệnh thứ i
đang thực hiện giải mã thì lại tiếp tục nạp lệnh tiếp theo i+1. Sang
chu kỳ xung nhịp thứ ba, trong khi lệnh thứ i đang thực hiện, lệnh
thứ i+1 đang giải mã thì lại tiếp tục tìm nạp lệnh thứ i+2.
Hình 7.9. Thực hiện lệnh trong kỹ thuật pipeline
Chương VII: Tổ chức Bộ xử lý
212
So sánh với kiểu xử lý tuần tự thơng thường, 5 lệnh được
thực hiện trong 25 chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật
ống dẫn thực hiện 5 lệnh chỉ trong 9 chu kỳ xung nhịp.
Cứ như thế, nếu số lệnh tăng lên nữa thì tiến tới chỉ trong
một chu kỳ xung nhịp, bộ xử lý cĩ thể thực hiện một lệnh (bình
thường lệnh này được thực hiện trong 5 chu kỳ).
Như vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các
lệnh. Tuy nhiên kỹ thuật ống dẫn cĩ một số ràng buộc:
- Cần phải cĩ một mạch điện tử để thi hành mỗi giai đoạn
của lệnh vì tất cả các giai đoạn của lệnh được thi hành cùng lúc.
Trong một bộ xử lý khơng dùng kỹ thuật ống dẫn, ta cĩ thể dùng bộ
logic số học ALU để cập nhật thanh ghi PC, cập nhật địa chỉ của
tốn hạng bộ nhớ, địa chỉ ơ nhớ mà chương trình cần nhảy tới, làm
các phép tính trên các tốn hạng vì các phép tính này cĩ thể xảy ra
ở nhiều giai đoạn khác nhau.
- Phải cĩ nhiều thanh ghi khác nhau dùng cho các tác vụ
đọc và viết. Trên hình 7.9, tại một chu kỳ xung nhịp (chu kỳ xung
nhịp 5), ta thấy cùng một lúc cĩ 2 tác vụ đọc (IF, MEM) và 1 tác vụ
viết (RS).
- Trong một máy cĩ kỹ thuật ống dẫn, cĩ khi kết quả của
một tác vụ trước đĩ, là tốn hạng nguồn của một tác vụ khác. Giả
sử kết quả của lệnh thứ i là tốn hạng của lệnh thứ i+1 thì tại chu
kỳ xung nhịp thứ 4 lệnh thứ i+1 khơng thể thực hiện (EX) được vì
cịn chưa cĩ giá trị tốn hạng. Như vậy sẽ cĩ thêm những khĩ khăn
địi hỏi phải cĩ cơ chế xử lý riêng.
- Cần phải giải mã các lệnh một cách đơn giản để cĩ thể
giải mã và đọc các tốn hạng trong một chu kỳ duy nhất của xung
nhịp.
- Cần phải cĩ các bộ làm tính ALU hữu hiệu để cĩ thể thi
hành lệnh số học dài nhất, cĩ số giữ, trong một khoảng thời gian ít
hơn một chu kỳ của xung nhịp.
Chương VII: Tổ chức Bộ xử lý
213
- Cần phải cĩ nhiều thanh ghi lệnh để lưu giữ lệnh mà
chúng ta phải xem xét cho mỗi giai đoạn thi hành lệnh.
- Cuối cùng phải cĩ nhiều thanh ghi bộ đếm chương trình
PC để cĩ thể tái tục các lệnh trong trường hợp cĩ ngắt quãng.
Những khĩ khăn trong kỹ thuật ống dẫn
Khi thi hành lệnh trong một máy tính dùng kỹ thuật ống
dẫn, cĩ nhiều trường hợp làm cho việc thực hiện kỹ thuật ống dẫn
khơng thực hiện được như là: thiếu các mạch chức năng, một lệnh
dùng kết quả của lệnh trước, một lệnh nhảy.
Ta cĩ thể phân biệt 3 loại khĩ khăn: khĩ khăn do cấu trúc,
khĩ khăn do số liệu và khĩ khăn do điều khiển.
a. Khĩ khăn do cấu trúc:
ðây là khĩ khăn do thiếu bộ phận chức năng, ví dụ trong
một máy tính dùng kỹ thuật ống dẫn phải cĩ nhiều ALU, nhiều PC,
nhiều thanh ghi lệnh IR ... Các khĩ khăn này được giải quyết bằng
cách thêm các bộ phận chức năng cần thiết và hữu hiệu.
b. Khĩ khăn do số liệu:
Lấy ví dụ trường hợp các lệnh liên tiếp sau:
Lệnh 1: ADD R1, R2, R3
Lệnh 2: SUB R4, R1, R5
Lệnh 3: AND R6, R1, R7
Lệnh 4: OR R8, R1, R9
Hình 7.10 cho thấy R1, kết quả của lệnh 1 chỉ cĩ thể được
dùng cho lệnh 2 sau giai đoạn MEM của lệnh 1, nhưng R1 được
Chương VII: Tổ chức Bộ xử lý
214
dùng cho lệnh 2 vào giai đoạn EX của lệnh 1. Chúng ta cũng thấy
R1 được dùng cho các lệnh 3 và 4.
Hình 7.10. Những khĩ khăn do số liệu
ðể khắc phục khĩ khăn này, một bộ phận phần cứng được
dùng để đưa kết quả từ ngã ra ALU trực tiếp vơ một trong các
thanh ghi ngã vào như trong hình 7.5.
Khi bộ phận phần cứng nêu trên phát hiện cĩ dùng kết quả
của ALU làm tốn hạng cho liệt kê, nĩ tác động vào mạch đa hợp
để đưa ngã ra của ALU vào ngã vào của ALU hoặc vào ngã vào
của một đơn vị chức năng khác nếu cần.
c. Khĩ khăn do điều khiển:
Các lệnh làm thay đổi tính thi hành các lệnh một cách tuần
tự (nghĩa là PC tăng đều đặn sau mỗi lệnh), gây khĩ khăn về điều
khiển. Các lệnh này là lệnh nhảy đến một địa chỉ tuyệt đối chứa
trong một thanh ghi, hay lệnh nhảy đến một địa chỉ xác định một
cách tương đối so với địa chỉ hiện tại của bộ đếm chương trình PC.
Các lệnh nhảy trên cĩ thể cĩ hoặc khơng điều kiện.
Trong trường hợp đơn giản nhất, tác vụ nhảy khơng thể biết
trước giai đoạn giải mã. Như vậy, nếu lệnh nhảy bắt đầu ở chu kỳ C
thì lệnh mà chương trình nhảy tới chỉ được bắt đầu ở chu kỳ C+2.
Ngồi ra, phải biết địa chỉ cần nhảy đến mà ta cĩ ở cuối giai đoạn
Chương VII: Tổ chức Bộ xử lý
215
giải mã ID. Trong lệnh nhảy tương đối, ta phải cộng độ dời chứa
trong thanh ghi lệnh IR vào thanh ghi PC. Việc tính địa chỉ này chỉ
được thực hiện vào giai đoạn ID với điều kiện phải cĩ một mạch
cơng việc riêng biệt.
Vậy trong trường hợp lệnh nhảy khơng điều kiện, lệnh mà
chương trình nhảy đến bắt đầu thực hiện ở chu kỳ C+2 nếu lệnh
nhảy bắt đầu ở chu kỳ C.
Cho các lệnh nhảy cĩ điều kiện thì phải tính tốn điều kiện.
Thơng thường các kiến trúc RISC đặt kết quả việc so sánh vào
trong thanh ghi trạng thái, hoặc vào trong thanh ghi tổng quát.
Trong cả 2 trường hợp, đọc điều kiện tương đương với đọc thanh
ghi. ðọc thanh ghi cĩ thể được thực hiện trong phân nửa chu kỳ
cuối giai đoạn ID.
Một trường hợp khĩ hơn cĩ thể xảy ra trong những lệnh
nhảy cĩ điều kiện. ðĩ là điều kiện được cĩ khi so sánh 2 thanh ghi
và chỉ thực hiện lệnh nhảy khi kết quả so sánh là đúng. Việc tính
tốn trên các đại lượng logic khơng thể thực hiện được trong phân
nửa chu kỳ và như thế phải kéo dài thời gian thực hiện lệnh nhảy
cĩ điều kiện. Người ta thường tránh các trường hợp này để khơng
làm giảm mức hữu hiệu của máy tính.
Vậy trường hợp đơn giản, người ta cĩ thể được địa chỉ cần
nhảy đến và điều kiện nhảy cuối giai đoạn ID. Vậy cĩ chậm đi một
chu kỳ mà người ta cĩ thể giải quyết bằng nhiều cách.
Cách thứ nhất là đĩng băng kỹ thuật ống dẫn trong một chu
kỳ, nghĩa là ngưng thi hành lệnh thứ i+1 đang làm nếu lệnh thư i là
lệnh nhảy. Ta mất trắng một chu kỳ cho mỗi lệnh nhảy.
Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý
rằng hiệu quả của một lệnh nhảy bị chậm mất một lệnh. Vậy lệnh
theo sau lệnh nhảy được thực hiện trước khi lệnh mà chương trình
Chương VII: Tổ chức Bộ xử lý
216
phải nhảy tới được thực hiện. Chương trình dịch hay người lập
trình cĩ nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy.
Trong trường hợp nhảy cĩ điều kiện, việc nhảy cĩ thể được
thực hiện hay khơng thực hiện. Lệnh hữu ích đặt sau lệnh nhảy
khơng làm sai lệch chương trình dù điều kiện nhảy đúng hay sai.
Bộ xử lý RISC SPARC cĩ những lệnh nhảy với huỷ bỏ. Các
lệnh này cho phép thi hành lệnh sau lệnh nhảy nếu điều kiện nhảy
đúng và huỷ bỏ thực hiện lệnh đĩ nếu điều kiện nhảy sai.
CÂU HỎI VÀ BÀI TẬP CHƯƠNG VII
1. Liệt kê các thành phần và nhiệm vụ của CPU?
2. Mơ tả tổ chức một máy tính đơn giản và hoạt động của các bộ
phận chính trong CPU
3. Nhiệm vụ của bộ điều khiển và các loại bộ điều khiển?
4. Bộ thanh ghi gồm các loại nào? Trong họ 80x86, hãy nêu các
thanh ghi và các đặc tính tương ứng của mỗi loại.
5. Các loại đường đi của dữ liệu và các ưu, nhược điểm của mỗi
loại?
6. Việc thi hành lệnh mã máy được thực thi ra sao? giải thích việc
thực thi đoạn chương trình sau:
MOV R4, #24
ADD R4, (R1)
7. Thế nào là ngắt quãng? Các giai đoạn thực hiện ngắt quãng của
CPU.
Chương VII: Tổ chức Bộ xử lý
217
8. Vẽ hình để mơ tả kỹ thuật ống dẫn. Kỹ thuật ống dẫn làm tăng
tốc độ CPU lên bao nhiêu lần (theo lý thuyết)? Tại sao trên thực tế
sự gia tăng này lại ít hơn?
9. Các điều kiện mà một CPU cần phải cĩ để tối ưu hố kỹ thuật
ống dẫn. Giải thích từng điều kiện.
10. Các khĩ khăn trong kỹ thuật ống dẫn và cách giải quyết khĩ
khăn này.
Kiến trúc máy tính 1 – Vũ ðức Lung
218
PHỤ LỤC
Trang
Lời nĩi đầu 1
Chương I: Giới thiệu 3
1.1. Lịch sử phát triển của máy tính
1.1.1. Thế hệ zero-máy tính cơ học (1642-1945)
1.1.2. Thế hệ I – bĩng đèn điện (1945-1955)
1.1.3. Thế hệ II – transistor (1955-1965)
1.1.4. Thế hệ III – mạch tích hợp (1965-1980)
1.1.5. Thế hệ IV – máy tính cá nhân (1980-đến nay)
1.2. Khuynh hướng hiện tại
1.3. Phân loại máy tính
1.4. Các dịng Intel
Câu hỏi và bài tập chương I
3
3
4
9
12
16
18
20
21
28
Chương II: Các bộ phận cơ bản của máy tính 30
2.1. Bộ xử lý (CPU)
2.2. Bản mạch chính (Mainboard)
2.3. Ổ đĩa mềm (FDD)
2.4. Ổ đĩa cứng (HDD)
2.5. Ổ CD và DVD
2.6. Bộ nhớ RAM và ROM
2.7. Bàn phím (Keyboard)
2.8. Chuột (Mouse)
2.9. Card màn hình (VGA Card)
2.10. Màn hình (Monitor)
2.11. Card mạng (Network adapter) và Modem
Câu hỏi và bài tập chương II
30
39
42
43
47
47
53
54
55
57
61
62
Chương III: Biểu diễn dữ liệu 63
3.1. Khái niệm thơng tin
3.2. Lượng thơng tin và sự mã hĩa thơng tin
63
64
Kiến trúc máy tính 1 – Vũ ðức Lung
219
3.3. Hệ thống số
3.4. Các phép tính số học cho hệ nhị phân
3.4.1. Phép cộng nhị phân
3.4.2. Phép trừ nhị phân
3.4.3. Biểu diễn số nguyên cĩ dấu
3.4.4. Số bù của một số
3.4.5. Phép trừ nhị phân dùng bù 2
3.5. Số quá n (excess-n)
3.6. Cách biểu diễn số với dấu chấm động
3.7. Biểu diễn số BCD
3.8. Biểu diễn các ký tự
Câu hỏi và bài tập chương III
65
71
71
72
73
73
74
76
77
79
81
82
Chương IV: Mạch Logic số 84
4.1. Cổng và đại số Boolean
4.1.1. Cổng (Gate)
4.1.2. ðại số Boolean
4.2. Bản đồ Karnaugh
4.3. Những mạch Logic số cơ bản
4.3.1. Mạch tích hợp (IC-Intergrate Circuit)
4.3.2. Mạch kết hợp (Combinational Circuit)
4.3.3. Bộ dồn kênh-bộ phân kênh
4.3.4. Mạch cộng (Adder)
4.3.5. Mạch giải mã và mã hĩa
Câu hỏi và bài tập chương IV
84
84
88
103
111
111
113
114
118
120
127
Chương V: Mạch tuần tự 130
5.1. Xung đồng hồ
5.2. Mạch lật (chốt – latch)
5.2.1. Mạch lật SR (SR-latch)
5.2.2. Mạch lật D
5.2.3. Mạch lật IK
5.3.4. Mạch lật T
5.3. Mạch lật lề (Flip-flop)
5.4. Mạch tuần tự
Bài tập chương V
130
131
132
135
136
136
137
140
147
Kiến trúc máy tính 1 – Vũ ðức Lung
220
Chương VI: Kiến trúc bộ lệnh 150
6.1. Phân loại kiến trúc bộ lệnh
6.2. ðịa chỉ bộ nhớ
6.3. Mã hĩa tập lệnh
6.3.1. Các tiêu chuẩn thiết kế dạng thức lệnh
6.3.2. Opcode mở rộng
6.3.3. Ví dụ về dạng thức lệnh
6.3.4. Các chế độ lập địa chỉ
6.4. Bộ lệnh
6.4.1. Nhĩm lệnh truyền dữ liệu
6.4.2. Nhĩm lệnh tính tốn số học
6.4.3. Nhĩm lệnh Logic
6.4.4. Nhĩm các lệnh dịch chuyển
6.4.5. Nhĩm các lệnh cĩ điều kiện và lệnh nhảy
6.5. Cấu trúc lệnh CISC và RISC
Câu hỏi và bài tập chương VI
150
154
156
157
159
162
166
174
176
178
179
180
181
184
189
Chương VII: Tổ chức bộ xử lý 191
7.1. Tổ chức bộ xử lý trung tâm
7.2. Bộ điều khiển
7.3. Bộ thanh ghi
7.4. ðường đi dữ liệu (Datapath)
7.4.1. Tổ chức One-Bus
7.4.2. Tổ chức Two-Bus, Three-Bus
7.5. Diễn tiến thi hành lệnh mã máy
7.6. Xử lý ngắt (Interrupt Handling)
7.7. Kỹ thuật ống dẫn (Pipeline)
Câu hỏi và bài tập chương VII
191
194
197
200
201
202
204
208
211
216
Phụ lục
Tài liệu tham khảo
218
221
Kiến trúc máy tính 1 – Vũ ðức Lung
221
TÀI LIỆU THAM KHẢO
1. Nguyễn Minh Tuấn, Kiến trúc máy tính (giáo trình lược giản),
V3.7, Trường ðH Khoa học tự nhiên tp. HCM
2. Cấu trúc máy tính cơ bản, tổng hợp và biên dịch VN-Guide, nhà
xuất bản thống kê.
3. Võ ðức Khánh ,Kiến trúc máy tính, ThS. Võ ðức Khánh
4. Võ Văn Chín, Nguyễn Hồng Vân, Phạm Hữu Tài. Giáo trình
kiến trúc máy tính. ðH Cần Thơ, 2003.
5. M. Abd-El-Barr, H. El-Rewini, Fundamentals of Computer
Organization and Architecture, Wiley, 2005
6. Patterson, D. A., and J. L. Hennessy. Computer Organization
and Design: The Hardware/Software Interface, 3rd ed. San Mateo,
CA: Morgan Kaufman, 2004
7. Robert Bruce Thompson, Barbara Fritchman Thompson,
Repairing and Upgrading Your PC, O’Reilly, 2006
8. William Stallings. Computer Organization & Architecture
(Designing for performance), Sixth edition, Pearson Education,
2003
Các file đính kèm theo tài liệu này:
- Giáo trình kiến trúc máy tính I - Chương 7.pdf