ứng xử của Intel · THÁNG 1 NĂM 2019 Bộ Quy tắc ứng xử của Intel
BỘ XỬ LÝ TRUNG TÂM
-
Upload
erich-bond -
Category
Documents
-
view
78 -
download
0
description
Transcript of BỘ XỬ LÝ TRUNG TÂM
BỘ XỬ LYacute TRUNG TAcircM(Central Processing Unit - CPU)
Nội dung
41 Cấu truacutec cơ bản của CPU
42 Tập lệnh
43 Hoạt động của CPU
44 Cấu truacutec của caacutec bộ xử lyacute tiecircn tiến
45 Kiến truacutec Intel
46 CPU 8086
Cấu truacutec cơ bản của CPU
Xem lại chương 1
Cấu truacutec cơ bản của CPU
bull Đơn vị điều khiển (Control Unit ndash CU)bull Đơn vị số học vagrave logic (Arithmetic and
Logic Unit - ALU)bull Tập thanh ghi (Register File - RF)bull Đơn vị nối gheacutep bus (Bus Interface Unit -
BIU)bull Bus becircn trong (Internal Bus)
Nhiệm vụ của CPUbull Nhận lệnh (Fetch Instruction) CPU đọc lệnh từ
bộ nhớbull Giải matilde lệnh (Decode Instruction) Xaacutec định
thao taacutec magrave lệnh yecircu cầubull Nhận dữ liệu (Fetch Data) nhận dữ liệu từ bộ
nhớ hoặc caacutec cổng vagraveo-rabull Xử lyacute dữ liệu (Process Data) thực hiện pheacutep
toaacuten số học hay pheacutep toaacuten logic với caacutec dữ liệubull Ghi dữ liệu (Write Data) ghi dữ liệu ra bộ nhớ
hay cổng vagraveo-ra
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Nội dung
41 Cấu truacutec cơ bản của CPU
42 Tập lệnh
43 Hoạt động của CPU
44 Cấu truacutec của caacutec bộ xử lyacute tiecircn tiến
45 Kiến truacutec Intel
46 CPU 8086
Cấu truacutec cơ bản của CPU
Xem lại chương 1
Cấu truacutec cơ bản của CPU
bull Đơn vị điều khiển (Control Unit ndash CU)bull Đơn vị số học vagrave logic (Arithmetic and
Logic Unit - ALU)bull Tập thanh ghi (Register File - RF)bull Đơn vị nối gheacutep bus (Bus Interface Unit -
BIU)bull Bus becircn trong (Internal Bus)
Nhiệm vụ của CPUbull Nhận lệnh (Fetch Instruction) CPU đọc lệnh từ
bộ nhớbull Giải matilde lệnh (Decode Instruction) Xaacutec định
thao taacutec magrave lệnh yecircu cầubull Nhận dữ liệu (Fetch Data) nhận dữ liệu từ bộ
nhớ hoặc caacutec cổng vagraveo-rabull Xử lyacute dữ liệu (Process Data) thực hiện pheacutep
toaacuten số học hay pheacutep toaacuten logic với caacutec dữ liệubull Ghi dữ liệu (Write Data) ghi dữ liệu ra bộ nhớ
hay cổng vagraveo-ra
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Cấu truacutec cơ bản của CPU
Xem lại chương 1
Cấu truacutec cơ bản của CPU
bull Đơn vị điều khiển (Control Unit ndash CU)bull Đơn vị số học vagrave logic (Arithmetic and
Logic Unit - ALU)bull Tập thanh ghi (Register File - RF)bull Đơn vị nối gheacutep bus (Bus Interface Unit -
BIU)bull Bus becircn trong (Internal Bus)
Nhiệm vụ của CPUbull Nhận lệnh (Fetch Instruction) CPU đọc lệnh từ
bộ nhớbull Giải matilde lệnh (Decode Instruction) Xaacutec định
thao taacutec magrave lệnh yecircu cầubull Nhận dữ liệu (Fetch Data) nhận dữ liệu từ bộ
nhớ hoặc caacutec cổng vagraveo-rabull Xử lyacute dữ liệu (Process Data) thực hiện pheacutep
toaacuten số học hay pheacutep toaacuten logic với caacutec dữ liệubull Ghi dữ liệu (Write Data) ghi dữ liệu ra bộ nhớ
hay cổng vagraveo-ra
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Cấu truacutec cơ bản của CPU
bull Đơn vị điều khiển (Control Unit ndash CU)bull Đơn vị số học vagrave logic (Arithmetic and
Logic Unit - ALU)bull Tập thanh ghi (Register File - RF)bull Đơn vị nối gheacutep bus (Bus Interface Unit -
BIU)bull Bus becircn trong (Internal Bus)
Nhiệm vụ của CPUbull Nhận lệnh (Fetch Instruction) CPU đọc lệnh từ
bộ nhớbull Giải matilde lệnh (Decode Instruction) Xaacutec định
thao taacutec magrave lệnh yecircu cầubull Nhận dữ liệu (Fetch Data) nhận dữ liệu từ bộ
nhớ hoặc caacutec cổng vagraveo-rabull Xử lyacute dữ liệu (Process Data) thực hiện pheacutep
toaacuten số học hay pheacutep toaacuten logic với caacutec dữ liệubull Ghi dữ liệu (Write Data) ghi dữ liệu ra bộ nhớ
hay cổng vagraveo-ra
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Nhiệm vụ của CPUbull Nhận lệnh (Fetch Instruction) CPU đọc lệnh từ
bộ nhớbull Giải matilde lệnh (Decode Instruction) Xaacutec định
thao taacutec magrave lệnh yecircu cầubull Nhận dữ liệu (Fetch Data) nhận dữ liệu từ bộ
nhớ hoặc caacutec cổng vagraveo-rabull Xử lyacute dữ liệu (Process Data) thực hiện pheacutep
toaacuten số học hay pheacutep toaacuten logic với caacutec dữ liệubull Ghi dữ liệu (Write Data) ghi dữ liệu ra bộ nhớ
hay cổng vagraveo-ra
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
ALU
bull Chức năng Thực hiện caacutec pheacutep toaacuten số học vagrave pheacutep toaacuten logicndash Số học cộng trừ nhacircn chia tăng giảm
đảo dấundash Logic AND OR XOR NOT pheacutep dịch bit
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
ALU- Pheacutep toaacuten Số học
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
ALU
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Control Unitbull Điều khiển nhận lệnh từ bộ nhớ đưa vagraveo
thanh ghi lệnhbull Tăng nội dung của PC để trỏ sang lệnh kế
tiếpbull Giải matilde lệnh đatilde được nhận để xaacutec định thao
taacutec magrave lệnh yecircu cầubull Phaacutet ra caacutec tiacuten hiệu điều khiển thực hiện lệnhbull Nhận caacutec tiacuten hiệu yecircu cầu từ bus hệ thống vagrave
đaacutep ứng với caacutec yecircu cầu đoacute
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Tiacuten hiệu đến CU
bull Clock tiacuten hiệu nhịp từ mạch tạo dao động becircn ngoagravei
bull Matilde lệnh từ thanh ghi lệnh đưa đến để giải matilde
bull Caacutec cờ từ thanh ghi cờ cho biết trạng thaacutei của CPU
bull Caacutec tiacuten hiệu yecircu cầu từ bus điều khiển
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Tiacuten hiệu điều khiển của CU
bull Caacutec tiacuten hiệu điều khiển becircn trong CPUndash Điều khiển caacutec thanh ghindash Điều khiển ALU
bull Caacutec tiacuten hiệu điều khiển becircn ngoagravei CPUndash Điều khiển bộ nhớndash Điều khiển caacutec mocircđun vagraveo-ra
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Tập thanh ghibull Tập hợp caacutec thanh ghi nằm trong CPUbull Chứa caacutec thocircng tin tạm thời phục vụ cho hoạt
động ở thời điểm hiện tại của CPUbull Được coi lagrave mức đầu tiecircn của hệ thống nhớbull Tuỳ thuộc vagraveo bộ xử lyacute cụ thểbull Số lượng thanh ghi nhiều tăng hiệu năng
của CPUbull Coacute hai loại thanh ghi
ndash Caacutec thanh ghi lập trigravenh đượcndash Caacutec thanh ghi khocircng lập trigravenh được
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Tập thanh ghi
bull Phacircn loại theo chức năngndash Thanh ghi địa chỉ quản lyacute địa chỉ của ngăn nhớ
hay cổng vagraveo-randash Thanh ghi dữ liệu chứa tạm thời caacutec dữ liệundash Thanh ghi đa năng coacute thể chứa địa chỉ hoặc dữ
liệundash Thanh ghi điều khiểntrạng thaacutei chứa caacutec thocircng
tin điều khiển vagrave trạng thaacutei của CPUndash Thanh ghi lệnh chứa lệnh đang được thực hiện
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Tập thanh ghi
bull Một số thanh ghi điển higravenhndash Caacutec thanh ghi địa chỉndash Bộ đếm chương trigravenh PC (Program Counter)ndash Con trỏ dữ liệu DP (Data Pointer)ndash Con trỏ ngăn xếp SP (Stack Pointer)ndash Thanh ghi cơ sở vagrave thanh ghi chỉ số (Base
Register amp Index Register)ndash Caacutec thanh ghi dữ liệundash Thanh ghi trạng thaacutei
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Bộ đếm chương trigravenh PC
bull Cograven được gọi lagrave con trỏ lệnh IP ndash Instruction Pointer
bull Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vagraveo
bull Sau khi một lệnh được nhận vagraveo nội dung PC tự động tăng để trỏ sang lệnh kế tiếp
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Thanh ghi con trỏ dữ liệu
bull Chứa địa chỉ của ngăn nhớ dữ liệu magrave CPU muốn truy nhập
bull Thường coacute một số thanh ghi con trỏ dữ liệundash DS EShellip
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Ngăn xếp (Stack)
bull Ngăn xếp lagrave vugraveng nhớ coacute cấu truacutec LIFO (FILO) ndash Last In ndash First Out (First In ndash Last Out)
bull Ngăn xếp thường dugraveng để phục vụ cho chương trigravenh con
bull Đaacutey ngăn xếp lagrave một ngăn nhớ xaacutec địnhbull Đỉnh ngăn xếp lagrave thocircng tin nằm ở vị triacute trecircn
cugraveng trong ngăn xếpbull Đỉnh ngăn xếp coacute thể bị thay đổi
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Con trỏ ngăn xếp SP Stack Pointer
bull SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpbull Khi cất một thocircng tin vagraveo ngăn xếp
ndash Nội dung của SP tự động giảmndash Thocircng tin được cất vagraveo ngăn nhớ được trỏ bởi SP
bull Khi lấy một thocircng tin ra khỏi ngăn xếpndash Thocircng tin được đọc từ ngăn nhớ được trỏ bởi SPndash Nội dung của SP tự động tăng
bull Khi ngăn xếp rỗng SP trỏ vagraveo đaacutey
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Data pointer
Stack pointer
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Thanh ghi cơ sở Thanh ghi chỉ số
bull Thanh ghi cơ sở chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở)
bull Thanh ghi chỉ số chứa độ lệch địa chỉ giữa ngăn nhớ magrave CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số)
bull Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec thanh ghi dữ liệu
bull Chứa caacutec dữ liệu tạm thời hoặc caacutec kết quả trung gian
bull Cần coacute nhiều thanh ghi dữ liệundash Caacutec thanh ghi số nguyecircn 8 16 32 64 bitndash Caacutec thanh ghi số dấu chấm động
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Status Register
bull Cograven gọi lagrave thanh ghi cờ (Flag Register)
bull Chứa caacutec thocircng tin trạng thaacutei của CPUndash Caacutec cờ pheacutep toaacuten baacuteo hiệu trạng thaacutei của
kết quả pheacutep toaacutenndash Caacutec cờ điều khiển biểu thị trạng thaacutei điều
khiển của CPU
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Status RegisterViacute dụ cờ pheacutep toaacutenbull Cờ Zero (cờ rỗng) được thiết lập lecircn 1 khi kết quả của
pheacutep toaacuten bằng 0bull Cờ Sign (cờ dấu) được thiết lập lecircn 1 khi kết quả pheacutep
toaacuten nhỏ hơn 0bull Cờ Carry (cờ nhớ) được thiết lập lecircn 1 nếu pheacutep toaacuten
coacute nhớ ra ngoagravei bit cao nhất ndash cờ baacuteo tragraven với số khocircng dấu
bull Cờ Overflow (cờ tragraven) được thiếp lập lecircn 1 nếu cộng hai số nguyecircn cugraveng dấu magrave kết quả coacute dấu ngược lạindash cờ baacuteo tragraven với số coacute dấu
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Status Register
Viacute dụ cờ điều khiển
bull Cờ Interrupt (Cờ cho pheacutep ngắt)ndash Nếu IF = 1 CPU ở trạng thaacutei cho pheacutep
ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
ndash Nếu IF = 0 CPU ở trạng thaacutei cấm ngắt với tiacuten hiệu yecircu cầu ngắt từ becircn ngoagravei gửi tới
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
42 Tập lệnhbull Mỗi bộ xử lyacute coacute một tập lệnh xaacutec địnhbull Tập lệnh thường coacute hagraveng chục đến hagraveng
trăm lệnhbull Mỗi lệnh lagrave một chuỗi số nhị phacircn magrave bộ xử
lyacute hiểu được để thực hiện một thao taacutec xaacutec định
bull Caacutec lệnh được mocirc tả bằng caacutec kyacute hiệu gợi nhớ chiacutenh lagrave caacutec lệnh của hợp ngữ
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec thagravenh phần của lệnh maacutey
bull Matilde thao taacutec (operation code rarr opcode) matilde hoacutea cho thao taacutec magrave bộ xử lyacute phải thực hiện
bull Địa chỉ toaacuten hạng chỉ ra nơi chứa caacutec toaacuten hạng magrave thao taacutec sẽ taacutec độngndash Toaacuten hạng nguồn dữ liệu vagraveo của thao taacutecndash Toaacuten hạng điacutech dữ liệu ra của thao taacutec
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec kiểu thao taacutec
bull Chuyển dữ liệubull Xử lyacute số học với số nguyecircnbull Xử lyacute logicbull Điều khiển vagraveo-rabull Chuyển điều khiển (rẽ nhaacutenh)bull Điều khiển hệ thốngbull Xử lyacute số dấu chấm độngbull Xử lyacute caacutec dữ liệu chuyecircn dụng
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến điacutechLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lyacuteSTORE Cất dữ liệu từ bộ xử lyacute đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn
vagrave điacutechCLEAR Chuyển caacutec bit 0 vagraveo toaacuten hạng điacutechSET Chuyển caacutec bit 1 vagraveo toaacuten hạng điacutechPUSH Cất nội dung toaacuten hạng nguồn vagraveo
ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến
toaacuten hạng điacutech
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh số học
ADD Cộng hai toaacuten hạngSUBTRACT Trừ hai toaacuten hạngMULTIPLY Nhacircn hai toaacuten hạngDIVIDE Chia hai toaacuten hạngABSOLUTE Lấy trị tuyệt đối toaacuten hạngNEGATE Đổi dấu toaacuten hạng (lấy bugrave 2)INCREMENT Tăng toaacuten hạng thecircm 1DECREMENT Giảm toaacuten hạng đi 1COMPARE Trừ 2 toaacuten hạng để lập cờ
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh logic
AND Thực hiện pheacutep AND hai toaacuten hạngOR Thực hiện pheacutep OR hai toaacuten hạngXOR Thực hiện pheacutep XOR hai toaacuten hạngNOT Đảo bit của toaacuten hạng (lấy bugrave 1)TEST Thực hiện pheacutep AND 2 toaacuten hạng
để lập cờSHIFT Dịch traacutei (phải) toaacuten hạngROTATE Quay traacutei (phải) toaacuten hạng
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Minh hoạ caacutec lệnh AND OR XOR
bull Giả sử coacute hai thanh ghi chứa dữ liệu như saundash (R1) = 1010 1010ndash (R2) = 0000 1111
bull R1 (R1) AND (R2) = 0000 1010ndash Pheacutep toaacuten AND dugraveng để xoaacute một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
bull R1 (R1) OR (R2) = 1010 1111ndash Pheacutep toaacuten OR dugraveng để thiết lập một số bit vagrave giữ nguyecircn
một số bit cograven lại của toaacuten hạng
bull R1 (R1) XOR (R2) = 1010 0101ndash Pheacutep toaacuten XOR dugraveng để đảo một số bit vagrave giữ nguyecircn một
số bit cograven lại của toaacuten hạng
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh vagraveo ra chuyecircn dụng
bull INPUT Copy dữ liệu từ một cổng xaacutec định đến điacutech
bull OUTPUT Copy dữ liệu từ nguồn đến một cổng xaacutec định
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh chuyển điều khiểnbull JUMP (BRANCH) - Lệnh nhảy khocircng điều kiện
ndash Nạp vagraveo PC một địa chỉ xaacutec địnhbull JUMP CONDITIONAL - Lệnh nhảy coacute điều kiện
ndash Điều kiện đuacuteng 1048774 nạp PC một địa chỉ xaacutec địnhndash Điều kiện sai 1048774 khocircng lagravem gigrave cảndash Điều kiện thường được kiểm tra thocircng qua caacutec cờ
bull CALL - Lệnh gọi chương trigravenh conndash Cất nội dung của PC (địa chỉ trở về) ra một vị triacute xaacutec định
(thường ở Stack)ndash Nạp vagraveo PC địa chỉ của lệnh đầu tiecircn của chương trigravenh con
bull RETURN - Lệnh trở về từ chương trigravenh conndash Khocirci phục địa chỉ trở về trả lại cho PC để trở về chương
trigravenh chiacutenh
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh điều khiển hệ thống
bull NO OPERATION Khocircng thực hiện gigrave cảbull HALT Dừng thực hiện chương trigravenhbull WAIT Tạm dừng thực hiện chương trigravenh
lặp kiểm tra điều kiện cho đến khi thoả matilden thigrave tiếp tục thực hiện
bull LOCK Cấm khocircng cho xin chuyển nhượng bus
bull UNLOCK Cho pheacutep xin chuyển nhượng bus
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Xacircy dựng tập lệnh
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Mục tiecircu xacircu dựng đặc tiacutenh cacircu lệnh
bull lagravem ngắn cacircu lệnh
bull đơn giản hoacutea cacircu lệnh
bull truy xuất toaacuten hạng nhanh
bull lagravem cacircu lệnh coacute tiacutenh linh động
8 phương phaacutep định địa chỉ (addressing modes)
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Định địa chỉ trực tiếp
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh
bull CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Định địa chỉ trực tiếp
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Định địa chỉ giaacuten tiếp qua thanh ghi
bull Toaacuten hạng lagrave ngăn nhớ coacute địa chỉ nằm trong thanh ghi
bull Trường địa chỉ của lệnh cho biết tecircn thanh ghi đoacute
bull Thanh ghi coacute thể lagrave ngầm địnhbull Thanh ghi nagravey được gọi lagrave thanh ghi con trỏbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn (2n)
(với n lagrave độ dagravei của thanh ghi)
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Định địa chỉ giaacuten tiếp qua ngăn nhớ
bull Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toaacuten hạng
bull Coacute thể giaacuten tiếp nhiều lầnbull Giống như khaacutei niệm biến con trỏ vagrave biến
động trong lập trigravenhbull CPU phải thực hiện tham chiếu bộ nhớ nhiều
lần để tigravem toaacuten hạng chậmbull Vugraveng nhớ coacute thể được tham chiếu lagrave lớn
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Định địa chỉ dịch chuyển (chỉ số)
bull Để xaacutec định toaacuten hạng Trường địa chỉ của lệnh chứa hai thagravenh phầnndash Tecircn thanh ghindash Hằng số
bull Địa chỉ của toaacuten hạng = nội dung thanh ghi + hằng số
bull Thanh ghi coacute thể được ngầm định
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec dạng của định địa chỉ dịch chuyển
bull Địa chỉ hoaacute tương đối với PCndash Thanh ghi lagrave Bộ đếm chương trigravenh PCndash Toaacuten hạng coacute địa chỉ caacutech ngăn nhớ được trỏ bởi
PC một độ lệch xaacutec địnhbull Định địa chỉ cơ sở
ndash Thanh ghi chứa địa chỉ cơ sởndash Hằng số lagrave chỉ số
bull Định địa chỉ chỉ sốndash Hằng số lagrave địa chỉ cơ sởndash Thanh ghi chứa chỉ số
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Matilde hoacutea lệnh
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Matilde hoacutea lệnh
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
43 Hoạt động của CPU
bull Chu trigravenh lệnhndash Nhận lệnhndash Giải matilde lệnhndash Nhận toaacuten hạngndash Thực hiện lệnhndash Cất toaacuten hạngndash Ngắt
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Nhận lệnh
bull CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trigravenh PC ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc bộ nhớbull Lệnh từ bộ nhớ được đặt lecircn bus dữ liệu
vagrave được CPU copy vagraveo thanh ghi lệnh IRbull CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Giải matilde lệnh
bull Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển
bull Đơn vị điều khiển tiến hagravenh giải matilde lệnh để xaacutec định thao taacutec phải thực hiện
bull Giải matilde lệnh xảy ra becircn trong CPU
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Nhận dữ liệu
bull CPU đưa địa chỉ của toaacuten hạng ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển đọc
bull Toaacuten hạng được đọc vagraveo CPU
bull Tương tự như nhận lệnh
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Nhận dữ liệu giaacuten tiếp
bull CPU đưa địa chỉ ra bus địa chỉbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Nội dung ngăn nhớ được đọc vagraveo CPU đoacute
chiacutenh lagrave địa chỉ của toaacuten hạngbull Địa chỉ nagravey được CPU phaacutet ra bus địa chỉ để
tigravem ra toaacuten hạngbull CPU phaacutet tiacuten hiệu điều khiển đọcbull Toaacuten hạng được đọc vagraveo CPU
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Thực hiện lệnh
bull Coacute nhiều dạng tuỳ thuộc vagraveo lệnhndash ĐọcGhi bộ nhớndash VagraveoRandash Chuyển giữa caacutec thanh ghindash Thao taacutec số họclogicndash Chuyển điều khiển (rẽ nhaacutenh)ndash hellip
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Ghi toaacuten hạng
bull CPU đưa địa chỉ ra bus địa chỉ
bull CPU đưa dữ liệu cần ghi ra bus dữ liệu
bull CPU phaacutet tiacuten hiệu điều khiển ghi
bull Dữ liệu trecircn bus dữ liệu được copy đến vị triacute xaacutec định
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Ngắt
bull Nội dung của bộ đếm chương trigravenh PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu
bull CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ
bull CPU phaacutet tiacuten hiệu điều khiển ghi bộ nhớbull Địa chỉ trở về trecircn bus dữ liệu được ghi ra vị triacute
xaacutec định (ở ngăn xếp)bull Địa chỉ lệnh đầu tiecircn của chương trigravenh con điều
khiển ngắt được nạp vagraveo PC
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
44 Cấu truacutec chung của caacutec bộ xử lyacute tiecircn tiến
bull Caacutec đơn vị xử lyacute dữ liệundash Caacutec đơn vị số nguyecircnndash Caacutec đơn vị số dấu chấm độngndash Caacutec đơn vị chức năng đặc biệt
bull Đơn vị xử lyacute dữ liệu acircm thanh higravenh ảnh vectorhellip
bull Bộ nhớ cachendash Cache L1 gồm hai phần taacutech rời Cache lệnh Cache dữ liệu
bull Giải quyết xung đột khi nhận lệnh vagrave dữ liệundash Cache L2
bull Đơn vị quản lyacute bộ nhớndash Chuyển đổi địa chỉ ảo thagravenh địa chỉ vật lyacutendash Cung cấp cơ chế phacircn trangphacircn đoạnndash Cung cấp chế độ bảo vệ bộ nhớ
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
45 Kiến truacutec Intelbull Kiến truacutec 4-bit 4004bull Kiến truacutec 8-bit 8008 8080 8085bull Kiến truacutec 16-bit 80868088 80186 80286bull Kiến truacutec 32-bit 80386 80486bull Pentium Pentium IIbull Celeron Pentium IIIbull Pentium IVbull Kiến truacutec 64-bit Itaniumbull 128 bit
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Kiến truacutec 16-bit (IA-16)
bull Caacutec thanh ghi becircn trong 16-bit
bull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 16-bit
bull Quản lyacute bộ nhớ theo đoạn 64 KBytes
bull Mở đầu cho dograveng maacutey tiacutenh IBM-PC
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Kiến truacutec 32-bit (IA-32)bull Caacutec thanh ghi becircn trong 32 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 32-bitbull Coacute 3 chế độ lagravem việc
ndash Chế độ 8086 thực (Real 8086 mode) lagravem việc như một bộ xử lyacute 8086
ndash Chế độ 8086 ảo (Virtual 8086 mode) lagravem việc như nhiều bộ xử lyacute 8086 (đa nhiệm 16-bit)
ndash Chế độ bảo vệ (Protected mode)bull Đa nhiệm 32-bitbull Quản lyacute bộ nhớ ảo
bull Xử lyacute caacutec pheacutep toaacuten số dấu chấm động (từ 80486)
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Kiến truacutec 64-bit (IA-64)
bull Caacutec thanh ghi becircn trong 64 bitbull Xử lyacute caacutec pheacutep toaacuten số nguyecircn với 64-bitbull Xử lyacute caacutec pheacutep toaacuten số dấu chấm độngbull Khocircng tương thiacutech phần cứng với caacutec bộ xử
lyacute trước đoacutebull Tương thiacutech phần mềm bằng caacutech giả lập
mocirci trường
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
CPU 808688
bull Vi xử lyacute 16 bitbull Tuyến địa chỉ A19 divide A0 rArr Quản lyacute 1MB bộ
nhớ (100 000H) ndash địa chỉ bộ nhớ 00000 divide FFFFF
bull Tuyến dữ liệu D15 divide D0 (8086) D7 divide D0 (8088)
bull Thực tế sử dụng tuyến địa chỉ dữ liệu chung AD7 divide AD0 rArr Cần mạch taacutech tuyến
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
CPU 8086-8088
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Quản lyacute bộ nhớ CPU 8086bull Địa chỉ vật lyacute dugraveng để
thiết kế mạchndash số 20 bit A19A18A17 A1A0
(00000 divide FFFFF)bull Địa chỉ luận lyacute dugraveng trong
chương trigravenhndash 2 thagravenh phần segment
offsetndash Dugraveng thanh ghi đoạn chứa
segmentndash Dugraveng thanh ghi đa dụng
chứa offset
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
Caacutec lệnh cơ bản
- BỘ XỬ LYacute TRUNG TAcircM
-
- BỘ XỬ LYacute TRUNG TAcircM
-