BỘ XỬ LÝ TRUNG TÂM

82
BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit - CPU)

description

BỘ XỬ LÝ TRUNG TÂM. (Central Processing Unit - CPU). Nội dung. 4.1. Cấu trúc cơ bản của CPU 4.2. Tập lệnh 4.3. Hoạt động của CPU 4.4. Cấu trúc của các bộ xử lý tiên tiến 4.5. Kiến trúc Intel 4.6. CPU 8086. Cấu trúc cơ bản của CPU. Xem lại chương 1. Cấu trúc cơ bản của CPU. - PowerPoint PPT Presentation

Transcript of BỘ XỬ LÝ TRUNG TÂM

Page 1: 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
Page 2: BỘ XỬ LÝ TRUNG TÂM

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
Page 3: BỘ XỬ LÝ TRUNG TÂM

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
Page 4: BỘ XỬ LÝ TRUNG TÂM

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
Page 5: BỘ XỬ LÝ TRUNG TÂM

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
Page 6: BỘ XỬ LÝ TRUNG TÂM

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
Page 7: BỘ XỬ LÝ TRUNG TÂM

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
Page 8: BỘ XỬ LÝ TRUNG TÂM

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
Page 9: BỘ XỬ LÝ TRUNG TÂM

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
Page 10: BỘ XỬ LÝ TRUNG TÂM

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
Page 11: BỘ XỬ LÝ TRUNG TÂM

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
Page 12: BỘ XỬ LÝ TRUNG TÂM

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
Page 13: BỘ XỬ LÝ TRUNG TÂM

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
Page 14: BỘ XỬ LÝ TRUNG TÂM

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
Page 15: BỘ XỬ LÝ TRUNG TÂM

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
Page 16: BỘ XỬ LÝ TRUNG TÂM

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
Page 17: BỘ XỬ LÝ TRUNG TÂM

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
Page 18: BỘ XỬ LÝ TRUNG TÂM

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
Page 19: BỘ XỬ LÝ TRUNG TÂM

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
Page 20: BỘ XỬ LÝ TRUNG TÂM

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
Page 21: BỘ XỬ LÝ TRUNG TÂM

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
Page 22: BỘ XỬ LÝ TRUNG TÂM

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
Page 23: BỘ XỬ LÝ TRUNG TÂM

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
Page 24: BỘ XỬ LÝ TRUNG TÂM

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
Page 25: BỘ XỬ LÝ TRUNG TÂM

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
Page 26: BỘ XỬ LÝ TRUNG TÂM

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
Page 27: BỘ XỬ LÝ TRUNG TÂM

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
Page 28: BỘ XỬ LÝ TRUNG TÂM

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
Page 29: BỘ XỬ LÝ TRUNG TÂM

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
Page 30: BỘ XỬ LÝ TRUNG TÂM

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
Page 31: BỘ XỬ LÝ TRUNG TÂM

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
Page 32: BỘ XỬ LÝ TRUNG TÂM

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
Page 33: BỘ XỬ LÝ TRUNG TÂM

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
Page 34: BỘ XỬ LÝ TRUNG TÂM

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
Page 35: BỘ XỬ LÝ TRUNG TÂM

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
Page 36: BỘ XỬ LÝ TRUNG TÂM

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
Page 37: BỘ XỬ LÝ TRUNG TÂM

Đị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
Page 38: BỘ XỬ LÝ TRUNG TÂM

Đị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
Page 39: BỘ XỬ LÝ TRUNG TÂM

Đị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
Page 40: BỘ XỬ LÝ TRUNG TÂM

Đị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
Page 41: BỘ XỬ LÝ TRUNG TÂM

Đị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
Page 42: BỘ XỬ LÝ TRUNG TÂM

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
Page 43: BỘ XỬ LÝ TRUNG TÂM

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
Page 44: BỘ XỬ LÝ TRUNG TÂM

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
Page 45: BỘ XỬ LÝ TRUNG TÂM

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
Page 46: BỘ XỬ LÝ TRUNG TÂM

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
Page 47: BỘ XỬ LÝ TRUNG TÂM

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
Page 48: BỘ XỬ LÝ TRUNG TÂM

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
Page 49: BỘ XỬ LÝ TRUNG TÂM

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
Page 50: BỘ XỬ LÝ TRUNG TÂM

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
Page 51: BỘ XỬ LÝ TRUNG TÂM

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
Page 52: BỘ XỬ LÝ TRUNG TÂM

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
Page 53: BỘ XỬ LÝ TRUNG TÂM

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
Page 54: BỘ XỬ LÝ TRUNG TÂM

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
Page 55: BỘ XỬ LÝ TRUNG TÂM

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
Page 56: BỘ XỬ LÝ TRUNG TÂM

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
Page 57: BỘ XỬ LÝ TRUNG TÂM

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
Page 58: BỘ XỬ LÝ TRUNG TÂM

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
Page 59: BỘ XỬ LÝ TRUNG TÂM

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
Page 60: BỘ XỬ LÝ TRUNG TÂM

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
Page 61: BỘ XỬ LÝ TRUNG TÂM

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
Page 62: BỘ XỬ LÝ TRUNG TÂM

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
Page 63: BỘ XỬ LÝ TRUNG TÂM

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
Page 64: BỘ XỬ LÝ TRUNG TÂM

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
Page 65: BỘ XỬ LÝ TRUNG TÂM

Caacutec lệnh cơ bản

Caacutec lệnh cơ bản

Caacutec lệnh cơ bản

  • BỘ XỬ LYacute TRUNG TAcircM
Page 66: BỘ XỬ LÝ TRUNG TÂM

Caacutec lệnh cơ bản

Caacutec lệnh cơ bản

  • BỘ XỬ LYacute TRUNG TAcircM
Page 67: BỘ XỬ LÝ TRUNG TÂM

Caacutec lệnh cơ bản

  • BỘ XỬ LYacute TRUNG TAcircM
Page 68: BỘ XỬ LÝ TRUNG TÂM
  • BỘ XỬ LYacute TRUNG TAcircM