Tc hc thanh ghi

Một phần của tài liệu Giáo trình kiến trúc máy tính và hợp ngữ (Trang 36 - 40)

Các thanh ghi bên trong b vi x lý 8 bit đ c chia thành các nhóm theo mục đích s dụng có thể chia thành 2 nhóm sau:

+ Nhóm thanh ghi dùng chung: G m các thanh ghi A (b c ng), B, C, D, E, H và L. Đây là các thanh ghi 8 bit. Các phép tính v i các bytes d li u đ u có thể thực hi n v i n i dung c a các thanh ghi này. Để x lý 16 bit có các l nh thực hi n v i các cặp thanh ghi BC, DE và HL. Cặp thanh ghi HL đ c dùng để ch a đ a ch ngăn nh đ i v i các l nh có truy nhập b nh . Riêng thanh ghi A còn gọi là b c ng, nó là thanh ghi đặc bi t.

+ Các thanh ghi khác g m: Thanh ghi tr ng thái SR, con tr ngăn x p SP, thanh ghi đ m l nh PC thanh ghi đ a ch ngăn nh , thanh ghi t m th i Temp1 và Temp2 và thanh ghi l nh.

Thanh ghi l nh (Instruction Register – IR): Dùng để l u tr l nh. Ng i lập trình không thể trực ti p thao tác lên thanh ghi này. Do đó nó không đ c coi nh là m t phần c a tập thanh ghi c a máy.

Thanh ghi đ a ch (Memory Address Register – MAR) và thanh ghi nh đ m (Memory Buffer Register –MBR): Khi máy tính truy xuất b nh chúng gi đ a ch tham chi u trong thanh ghi MAR và gi d li u ghi/đọc trong MBR. Ng i lập trình cũng không trực ti p can thi p vào 2 thanh ghi này nên nó cũng không đ c coi là m t phần c a tập thanh ghi c a máy tính.

Ch c năng c a các thanh ghi nh sau:

Thanh tổng A (Accumulator):

Thanh t ng A tham gia vào phần l n các phép tính. Đ dài c a thanh t ng bằng đ dài t mà CPU x lý. Nghĩa là n u CPU x lý 8 bit thì thanh t ng A có đ dài 8 bit. Tuy nhiên m t s lo i CPU có thể có đ dài thanh t ng gấp đôi đ dài x lý c a CPU hay còn gọi là thanh t ng đ dài kép. Thậm chí m t s lo i CPU còn có nhi u thanh t ng. Trong tr ng h p này phải có l nh ch cho b vi x lý chuyển k t quả tính c a ALU vào thanh t ng th nhất và m t l nh ch cho b vi x lý chuyển d li u vào thanh t ng ti p theo. T ng tự có l nh xóa d li u trên thanh t ng th nhất, có l nh xóa d li u trên thanh t ng th hai. Nh ng l nh vào ra (I/O) v i ngo i vi là nhóm l nh trao đ i d li u c a thanh t ng A v i các thanh ghi c a đi u khiển ngo i vi thông qua bus h th ng và bus d li u bên trong c a CPU.. L nh nhập d li u IN port là l nh đọc d li u t c ng (Port) c a ngo i vi (đ a ch Port) vào thanh ghi A và l nh xuất OUT Port đọc n i dung thanh ghi A ra Port ngo i vi.

Thanh đếm chương trình PC (Program Counter):

Thanh đ m ch ng trình có đ dài l n h n so v i đ dài t x lý c a CPU. Các b vi x lý th ng có PC dài 16 bit. M t ch ng trình đ c b vi x lý thực hi n phải ch a trong b nh chính (Main Memory). Thanh PC ch a đ a c a ch l nh trong b nh và ch ra cho b vi x lý bi t l nh ti p theo nằm ngăn nh nào để lấy ra thực hi n. Nh vậy đ dài c a thanh PC chính là khả năng đánh đ a ch b nh chính có thể đ t đ c c a b vi x lý. Ví dụ n u thanh PC có đ dài 16 bit thì ta có thể quản lý dung l ng 216bit = 64KB. Nghĩa là có thể đánh đ a ch t 0 đ n 65.535 ngăn nh . Nh vậy thanh PC luôn đ c n p đ a ch l nh (đ a ch ngăn nh ch a l nh máy) ti p theo trong quá trình thực hi n bất kỳ m t ch ng trình nào. L nh nào, nằm đâu tùy thu c vào trình tự thực hi n t ng ch ng trình. Trong các b vi

x lý công ngh cao có c ch quản lý b nh ảo ((Virtual Memory). B nh ảo bao g m b nh chính và b nh ngoài. C ch đánh đ a ch ảo có sự bi n đ i đ a ch ảo thành đ a ch vật lý (đ a ch thực c a b nh ), nh vậy n i dung c a đ a ch l nh s ph c t p h n.

Thanh ghi đ a ch ngăn nh (16 bit) và thanh đ m PC có đ dài gi ng nhau. Thanh ghi đ a ch ngăn nh có k t n i v i bus đ a ch . Đ a ch c a ngăn nh ch a l nh đầu tiên c a ch ng trình là n i dung c a thanh PC đ c chuyển t i thanh ghi đ a ch ngăn nh để ra bus đ a ch , nghĩa là trên bus đ a ch có đ a ch c a l nh đầu tiên tr ng thái tích cực. B nh chính k t n i trên bus s nhận đ c các đ ng đ a ch tích cực này, giải mã chọn đ c ngăn nh ch a l nh. Quá trình ti p theo s là đọc l nh và thực hi n l nh.

Thanh ghi trạng thái SR (Status Register)

Thanh ghi tr ng thái dùng để ghi k t quả c a các l nh kiểm tra, so sánh và m t s l nh tính toán v i các thanh ghi. Thanh ghi tr ng thái còn gọi là thanh ghi c (Flag Register). S dụng các bit c a thanh ghi tr ng thái (còn gọi là các bit c ) có thể thực hi n r nhánh ch ng trình bằng các l nh nhảy và r nhánh có đi u ki n. Thanh ghi tr ng thái c a b vi x lý 8 bit ch có 8 bit. M i bit c a thanh ghi này có m t ý nghĩa và b tác đ ng tùy theo l nh.

Con trỏ ngăn xếp SP (Stack Point)

Ngăn x p là b nh có c ch truy cập theo kiểu LIFO (Last In First Out), nghĩa là byte d li u nào ghi vào ngăn x p cu i cùng s đ c đọc ra đầu tiên. Ngăn x p có thể là m t vùng nào đó c a b nh chính, hay là m t mảng thanh ghi riêng bi t. Ngăn x p luôn đ c truy cập đ nh (Top). Nó làm nhi m vụ l u tr nh ng thông tin phải dùng đi dùngl i nhi u lần trong quá trình thực hi n ch ng trình. Các l nh tác đ ng đ n ngăn x p là nhóm l nh gọi (CALL) đ n ch ng trình con, nhảy tr l i ch ng trình chính t ch ng trình con (RET), l nh ngắt (INT) và nhảy t ch ng trình x lý ngắt (IRET). Có các l nh chuyên dùng để cất gi n i dung các thanh ghi vào ngăn x p (vì sau đó phải dùng l i n i dung các thanh ghi đó) nh l nh (PUSH) và l nh lấy ra n i dung các thanh ghi t ngăn x p (POP). Các l nh này luôn làm thay đ i đ nh c a ngăn x p. Con tr ngăn x p SP ch a đ a ch c a đ nh ngăn x p và

n i dung c a SP s thay đ i khi thực hi n các l nh v a nói trên, t c là nó luôn tr đ n vùng nh ti p theo. Khi kh i đ ng h th ng máy tính, con tr ngăn x p luôn đ c kh i t o v đ a ch đ nh c a ngăn x p. N u nó không đ c kh i t o ngăn x p có thể là bất kỳ c a vùng nào c a b nh .

Thanh ghi địa chỉ bộ nhớ logic (Memory address register and logic)

Thanh ghi đ a ch b nh có đ dài nh thanh ghi PC (16 bit), các đầu ra c a thanh ghi này đ c đi u khiển n i ra bus đ a ch c a h th ng máy tính để thực hi n chọn ngăn nh , hoặc để chọn c ng ngo i vi nào đó. Trong chu kỳ đọc l nh, m t l nh máy đ c đọc t b nh . N i dung c a thanh ghi đ a ch ngăn nh và n i dung c a thanhđ m l nh PC lúc này là nh nhau, nghĩa là thanh ghi đ a ch b nh tr t i t (Word) l nh đang đ c đọc t b nh . Thanh ghi đ a ch b nh không thể tự đ ng tăng hay giảm n i dung mà nó nhận đ a ch l nh t PC, t SP và thanh ghi ch s . M t s l nh đặc bi t cho phép thi t lập trực ti p n i dung thanh ghi đ a ch b nh . Trong hầu h t các họ vi x lý 8 bit thanh ghi đ a ch b nh có đ dài 16 bit. Tuy nhiên m t s vi x lý có thanh ghi này có đ dài 32 hoặc 64 bit.

Thanh ghi lệnh IR (Instruction Register)

Thanh ghi l nh ch a l nh đang thực hi n. Trong chu kỳ đọc mã l nh (Instruction Cycle) t b nh , mã l nh đ c n p vào thanh ghi l nh IR thôngqua bus d li u n i b . Thanh IR đ c coi nh là b đ m duy trì n i dung mã l nh. Đầu ra c a thanh IR đ c đ a t i b giải mã l nh (Instruction decode) để t o ra các tín hi u đi u khiển thực hi n l nh. Đ dài c a thanh IR tùy thu c vào t ng b vi x lý, trong m t s lo i, đ dài c a nó bằng đ dài c a t (Word) x lý. Cũng có thể dựa vào s l ng l nh c a tập l nh tacó thể đoán đ c đ dài c a thanh IR. Vì 2N = S l ng t i đa các l nh (Maximal Number of instruction), trong đó N = s bit c a IR. Đôi khi đ dài c a thanh IR ch có t 3 đ n 4 bit.

Các thanh ghi dữ liệu tạm thời Temp (Temporary data register)

Trong s đ cấu trúc b vi x lý các thanh ghi này có ký hi u là Temp1 và Temp2. ALU không có b đ m, do đó khi tính toán, các d li u phải đ c lấy t bus d li u hoặc đ a tr l i bus d li u bên trong theo th i điểm nh p nào đó. Nh ng vi c này n u thi u thanh ghi d li u t m th i s không thực hi n đ c.

Ngoài ra trong quá trình x lý cần sự n đ nh d li u đầu vào ALU, do đó cần có thanh ghi đ m để l u tr d li u trong th i gian ngắn để cho ALU thực hi n xong phép tính

Một phần của tài liệu Giáo trình kiến trúc máy tính và hợp ngữ (Trang 36 - 40)