1. Thanh ghi
Thanh ghi là một mảng của các DFF. Vd thanh ghi 32-bit là mộ mảng của 32 DFF
· Bổ sung thêm một input write line vào DFF.
· Khi write line ở mức cao, tín hiệu clock luôn được truyền vào DFF, vì vậy dữ liệu được lưu trữ vào DFF tại thời điểm xườn kích hoạt.
· Khi wrtie line ở mức thấp, tín hiệu clock luôn ở mức cao, nên không có sườn kích hoạt, vì vậy không thể ghi được dữ liệu vào.
· OR write line với tín hiệu clock, vì vậy có thể thay đổi trạng thái write line khi tín hiệu clock ở mức cao nên không ảnh hưởng đến clock của DFF.
==> Để tạo thành thanh ghi nhiều bit, chỉ việc sử dụng nhiều DFF.
2.Register File
- Một file thanh ghi là một bộ các thanh ghi được đánh số.
· Để truy cập vào register file, ta cấp số hiệu của thanh ghi, cấp tín hiệu cho write line.
· Ta có thể đọc và viết trên cùng một thanh ghi suốt một cycle. Sau khi đọc giá trị cũ, giá trị sắp được ghi sẽ thay thế giá trị cũ đó ở các cycle sau.
· Thường có nhiều cổng đọc vào ghi trên register file, nên ta có thể đọc và ghi nhiều thanh ghi trong một cycle.
· Register file ở đây có 2 cổng đọc vào 1 cổng ghi.
a,Đọc từ Register file.
- Để đọc từ register file, ta cần một bộ mux để lựa chọn thanh ghi cần ghi.
· Dùng một bộ mux cho mỗi cổng đọc.
· Một bộ mux có n-input, b-bit mux, trong đó
o n là số lượng thanh ghi (32 với MIPS)
o b là độ rộng của mỗi thanh ghi( 32 với MIPS)
· Làm tròn phía trên của log(n) để xác định số bit đánh số thanh ghi.
b, Ghi vào register file
- Để ghi vào register file, ta sử dụng mạch decoder để xác định thanh ghi cần ghi.
· Mạch decoder log(n) -> n
· Output của mạch decoder được đánh số từ 0 đến n-1
- Nhớ là input của register bao gồm write line (W), dữ liệu cần ghi (D), và clock (CK). Thanh ghi r được ghi dữ liệu vào nếu write line được xác nhận và số hiệu của thanh ghi cần ghi là r. Ở đây write line được OR với output của decoder.
· Tín hiệu clock vào mỗi thanh ghi chính là tín hiệu clock vào register file.
· Dữ liệu đưa vào mỗi thanh ghi chính là dữ liệu đưa vào register file.
· Mỗi thanh ghi có write line duy nhất.
o Số hiệu thanh ghi được nạp vào trong mạch decoder.
o Output của decoder sẽ cho ra tương ứng với số hiệu.
o Vậy để ghi vào thanh ghi r cần:
§ Write line của thanh ghi đó phải được xác nhận.
§ Output thứ r tương ứng của mạch decoder được xác nhận.
Sau đây là file LOGISIM:
- LINK DOWN GG DRIVER
minion_bananas
TẬP THANH GHI
Thanh ghi là một mảng của các DFF. Vd thanh ghi 32-bit là mộ mảng của 32 DFF
· Bổ sung thêm một input write line vào DFF.
· Khi write line ở mức cao, tín hiệu clock luôn được truyền vào DFF, vì vậy dữ liệu được lưu trữ vào DFF tại thời điểm xườn kích hoạt.
· Khi wrtie line ở mức thấp, tín hiệu clock luôn ở mức cao, nên không có sườn kích hoạt, vì vậy không thể ghi được dữ liệu vào.
· OR write line với tín hiệu clock, vì vậy có thể thay đổi trạng thái write line khi tín hiệu clock ở mức cao nên không ảnh hưởng đến clock của DFF.
==> Để tạo thành thanh ghi nhiều bit, chỉ việc sử dụng nhiều DFF.
2.Register File
- Một file thanh ghi là một bộ các thanh ghi được đánh số.
· Để truy cập vào register file, ta cấp số hiệu của thanh ghi, cấp tín hiệu cho write line.
· Ta có thể đọc và viết trên cùng một thanh ghi suốt một cycle. Sau khi đọc giá trị cũ, giá trị sắp được ghi sẽ thay thế giá trị cũ đó ở các cycle sau.
· Thường có nhiều cổng đọc vào ghi trên register file, nên ta có thể đọc và ghi nhiều thanh ghi trong một cycle.
· Register file ở đây có 2 cổng đọc vào 1 cổng ghi.
a,Đọc từ Register file.
- Để đọc từ register file, ta cần một bộ mux để lựa chọn thanh ghi cần ghi.
· Dùng một bộ mux cho mỗi cổng đọc.
· Một bộ mux có n-input, b-bit mux, trong đó
o n là số lượng thanh ghi (32 với MIPS)
o b là độ rộng của mỗi thanh ghi( 32 với MIPS)
· Làm tròn phía trên của log(n) để xác định số bit đánh số thanh ghi.
b, Ghi vào register file
- Để ghi vào register file, ta sử dụng mạch decoder để xác định thanh ghi cần ghi.
· Mạch decoder log(n) -> n
· Output của mạch decoder được đánh số từ 0 đến n-1
- Nhớ là input của register bao gồm write line (W), dữ liệu cần ghi (D), và clock (CK). Thanh ghi r được ghi dữ liệu vào nếu write line được xác nhận và số hiệu của thanh ghi cần ghi là r. Ở đây write line được OR với output của decoder.
· Tín hiệu clock vào mỗi thanh ghi chính là tín hiệu clock vào register file.
· Dữ liệu đưa vào mỗi thanh ghi chính là dữ liệu đưa vào register file.
· Mỗi thanh ghi có write line duy nhất.
o Số hiệu thanh ghi được nạp vào trong mạch decoder.
o Output của decoder sẽ cho ra tương ứng với số hiệu.
o Vậy để ghi vào thanh ghi r cần:
§ Write line của thanh ghi đó phải được xác nhận.
§ Output thứ r tương ứng của mạch decoder được xác nhận.
Sau đây là file LOGISIM:
- LINK DOWN GG DRIVER
minion_bananas
TẬP THANH GHI