Tải bản đầy đủ (.docx) (20 trang)

BTL Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD29000

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (384.93 KB, 20 trang )

z


TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI
KHOA CNTT-K9

BÀI TẬP LỚN
Mơn: Kiến trúc máy tính

Đề tài: Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD29000

Giáo viên hướng dẫn: Nguyễn Thanh Hải
Nhóm thực hiện: Nhóm 6
Lớp: KTPM3-K9


BÀI TẬP LỚN
Mơn: Kiến trúc máy tính

Đề 25: Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD 29000

Nhóm 6
Lớp KTPM3-K9
Thành viên tham gia thực hiện:
Họ và tên:

MSV:

Ngô Mạnh Cường

0941360240



Bùi Đức Dũng

0941360235

Lê Minh Hải

0941360197

Trần Văn Hiển

0941360162

Đào Văn Hùng

0941360446


Mục lục


5
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD 29000
I. Giới thiệu tổng quan về VXL AM29000.
Am29000 (hoặc 29k) là tên gọi chung của một họ vxl
32-bit RISC(1) và vi điều khiển được phát triển và chế

tạo bởi Advanced Micro Devices (AMD).
Trong 1 khoảng thời gian, chip RISC là sản phẩm phổ
biến nhất trên thị trường, được sử dụng rộng rãi trong
các máy in laser. Đến cuối 1995, AMD giảm nhân sự
của dòng chip 29k chuyển dần sang phát triển dịng sản
phẩm cho máy tính doanh nghiệp.
29k được coi như là 1 phiên bản cải tiến từ Berkeley RISC, Sun SPARC và Intel i960,
giống như các thiết kế SPARC (2) đã được giới thiệu trong thời gian ngắn sau đó, 29k
có một tập hợp lớn các thanh ghi, mặc dù được giới thiệu trước SPARC nhưng nó ưu
việt hơn. 29k có đến 64 thành ghi global cịn SPARC chỉ có 8. Ngồi ra 29k cịn cho
phép các cửa sổ hoạt động tùy biến kích thước trên 128 thanh ghi của bộ nhớ Cache
(cửa số có thể thay đổi kích thước từ 1-128 thanh ghi).
Ngồi ra 1 hình thức quản lý việc truy cập thanh ghi cũng được cung cấp. Tất cả
thanh ghi đều được bảo vệ trong Block. Các tính năng này khiến cho 29k trở nên hữu
ích với các ứng dụng dạng nhúng. Nó đã đạt danh hiệu “bộ vi xử lý RISC phổ biến
nhất”.
Loạt vxl 29k-32bit của AMD được tạo ra để cạnh tranh với Intel 80960 và Motorola
MC68020/030.
Các vxl 29k đầu tiên được phát hành vào năm 1988, được tích hợp một MMU(3). Các
29.005 là một phiên bản cắt giảm xuống. Các dòng đã được nâng cấp là 29.030 và
29.035, trong đó bao gồm 8KB hoặc 4KB Cache lệnh tương ứng. Bản nâng cấp
29.040 tích hợp các FPU(4) và thêm một bộ nhớ cache 4KB.
Phiên bản chính thức 29.050 có hiệu quả dấu chấm động tốt hơn nhiều so với bộ vi
xử lý 29k trước.
Một số phần của thiết kế 29.050 đã được sử dụng làm cơ sở xây dựng vxl K5-x86.
AMD ngưng phát triển loạt vxl 29k hoàn toàn vào năm 1995. Điều này rất có thể là
do sự phát triển của các bộ vi xử lý K5 và K6. Có một số vấn đề với việc ngừng phát
triển 29K như nó được sử dụng nhiều trong các lĩnh vực nhiệm vụ quan trọng (ngành
hàng không). Để tránh việc phải cung cấp sự hỗ trợ cho một sản phẩm ngừng phát
triển, AMD đã bán thiết kế 29.050 cho Honeywell, một công ty nổi tiếng về hàng

khơng vũ trụ và quốc phịng.


6
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

(1)

RISC (viết tắt của Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) là một
phương pháp thiết kế các bộ vi xử lý theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi
tất cả các lệnh đều như nhau.
(2)

(3)

SPARC là một RISC được phát triển bởi hãng Sun Microsystem.

MMU (viết tắt của Memory Management Unit -Đơn vị quản lý bộ nhớ ) phần cứng phụ trách xử lý
địa chỉ nằm trong CPU, sẽ tự động chuyển địa chỉ ảo sang địa chỉ vật lý.
(4)
FPU (viết tắt Floating Point Unit) đơn vị tính tốn dấu phẩy động.


7
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD


II. Đặc điểm.
1. Sơ đồ chân, chức năng các chân tín hiệu.

-

A0-A31: Bus địa chỉ (3 trạng thái đầu ra, đồng bộ)

Bus địa chỉ chuyển các byte địa chỉ cho tất cả truy cập. Khi bật chế độ truy cập dữ
liệu, nó sẽ chuyển địa chỉ cho truy cập đầu tiên.
-

*BREQ: Bus yêu cầu (đầu vào, đồng bộ)

Đầu vào này cho phép các máy chủ khác đưa ra quyết định hoạt động của bộ xử lí.
-

*BGRT: Bus cấp (đầu ra, đồng bộ)

Các tín hiệu đầu ra đến các bộ xử lí ngồi hủy bỏ quyền kiểm sốt để đáp ứng Bus
yêu cầu (*BREQ).
-

*BINV: Bus sai (đầu ra, đồng bộ)

Đầu ra này chỉ ra các Bus địa chỉ và điều khiển khơng hợp lệ liên quan. Nó xác định
một chu kì không làm việc.
-

R/*W: Đọc/Viết (3 trạng thái đầu ra, đồng bộ)


Tín hiệu này chỉ ra cho dù dữ liệu đang được chuyển từ các bộ vi xử lí vào hệ thống,
hoặc từ hê thống để xử lí.
-

SUP/*US: Giám sát/Chế độ sử dụng (3 trạng thái đầu ra, đồng bộ)


8
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Đầu ra này chỉ ra các truy cập cho chế độ chương trình.

-

*LOCK: Khóa (3 trạng thái đầu ra, đồng bộ)

Đầu ra này cho phép triển khai các kênh khác nhau và thiết bị khóa liên động. Nó có
thể hoạt động chỉ với một khoảng thời gian của một truy cập, hoặc hoạt động của một
giai đoạn tăng thời gian sau dưới sự điều khiển của Bit khóa trong trạng thái bộ vi xử
lí hiện hành.
Bộ xử lí khơng bỏ kênh (trong hồi đáp đến Bus yêu cầu) khi khóa hoạt động.
-

MPGM0-MPGM1: MMU Programmable (3 trạng thái đầu ra, đồng bộ)

Các đầu ra đưa ra 2 giá trị của 2 bit PGM trong khi dịch lối vào bộ nhớ trung gian
liên quan tới truy cập. Nếu khơng có địa chỉ dịch để thực hiện, tín hiệu của cả 2 đều là
Low (thấp).

-

*PEN: Pipeline Enable (đầu vào, đồng bộ)


9
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Tín hiệu này ho phép các chương trình có thể giúp đỡ các truy cập đường ống (tức là
có đầu vào chốt cho một địa chỉ và các điều khiển cần thiết) để tín hiệu đó có một
truy cập thứ hai có thể bắt đầu khi truy cập thứ nhất hoàn thành.
-

I0-I31: Bus lệnh (đầu vào, đồng bộ)

Các Bus lệnh chuyển các hướng dẫn đến bộ xử lí.
-

*IREQT: Lệnh yêu cầu (3 trạng thái đầu ra, đồng bộ)

Tín hiệu yêu cầu một lệnh truy cập. Khi nó hoạt động, địa chỉ của truy cập xuất hiện
trong Bus địa chỉ.
-

IREQT: loại lệnh yêu cầu (3 trạng thái đầu ra, đồng bộ)

Tín hiệu này quy định cụ thể địa chỉ của một lệnh yêu cầu, khi *IREQT (lệnh yêu
cầu) hoạt động:

0: Lệnh truy cập bộ nhớ dữ liệu
1: Lệnh chỉ đọc-truy cập bộ nhớ
-

*IRDY: lệnh tức thời (đầu vào, đồng bộ)

Đầu vào này chỉ ra lệnh đó trong Bus lệnh. Bộ xử lí bỏ qua tín hiệu này nếu khơng có
lệnh truy cập nào chưa được giải quyết.
-

*IERR: Lệnh lỗi (đầu vào, đồng bộ)

Đầu vào này chỉ ra một lỗi xảy ra khi lệnh truy cập thực hiện. Bộ xử lí bỏ qua sự thực
hiện của Bus lệnh, và một truy cập có lỗi xảy ra nếu bộ xử lí cố gắng thực hiện lệnh
khơng hợp lệ. Bộ xử lí bỏ qua tín hiệu nếu khơng có lệnh truy cập nào chưa được xử
lí.
-

*IBREQ: Yêu cầu lênh truyền hàng loạt (3 trạng thái đầu ra, đồng bộ)

Tín hiệu này được sử dụng thiết lập hàng loạt loạt lệnh truy cập và lệnh yêu cầu
chuyển mỗi loại lệnh truy cập. Lệnh yêu cầu truyền hàng loạt (*IBREQ) cũng có thể
hoạt động tuy nhiên Bus địa chỉ phải đang sử dụng một truy cập dữ liệu.
-

*IBACK: lệnh công nhận hàng loạt (đầu vào, đồng bộ)

Đầu vào này hoạt động khi một loại lệnh truy cập hàng loạt được tạo thành. Nó cũng
có thể hoạt động tuy nhiên khơng có lệnh nào thực hiện truy cập.
-


*PIA: lệnh truy cập đường ống (3 trạng thái đầu vào, đồng bộ)

Nếu *IREQ không hoạt động, đầu ra này chỉ ra một lệnh yêu cầu đường ống với cái
khác, trong tiến trình, lệnh truy cập. Truy cập chỉ ra khơng thể hồn thành cho đến khi
truy cập đầu tiên hoàn thành.
-

D0-D31: Bus dữ liệu (định hướng, đồng bộ)


10
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Bus dữ liệu chuyển dữ liệu đến từ bộ xử lí, tải và lưu trữ hoạt động.

-

DREQ: Yêu cầu dữ liệu (3 đầu ra, đồng bộ)

Chỉ dẫn này yêu cầu một truy cập dữ liệu. Khi nó hoạt động, địa chỉ của truy cập
được xuất hiện trong Bus địa chỉ.
-

DREQT0-DREQT1: loại yêu cầu dữ liệu (3 trạng thái đầu ra, đồng bộ)

Các tín hiệu xác định địa chỉ khơng gian của truy cập dữ liệu (không quan tâm các giá
trị “x”)

DREOT1 DREOT0
0
0
0
1
1
X
-

Ý nghĩa
Lệnh/truy cập dữ liệu bộ nhớ
Lệnh vào/ra
chuyển coprocessor

DRDY: Dữ liệu tức thời (đầu vào, đồng bộ)

Khi tải, đầu vào này chỉ ra dữ liệu này có hiệu lực trên Bus dữ liệu. Khi tải, nó chỉ ra
truy cập đó được hồn thành. Bộ xử lí bỏ qua tín hiệu này nếu khơng có truy cập dữ
liệu nào thưc hiện.
-

*DERR: lỗi dữ liệu (đầu vào, đồng bộ)

Đầu vào này chỉ ra một nỗi đang xảy ra khi truy cập dữ liệu được thưc hiện. Khi tải,
bộ xử lí bỏ qua nội dung của Bus dữ liệu. Khi lưu trữ, truy cập bị chấm dứt.
-

*DBREQ: Yêu cầu dữ liệu hàng loạt (3 trạng thái đầu ra, đồng bộ)

*Tín hiệu này được sử dụng để thiết lập một chế độ truy cập dữ liệu hàng loạt và yêu

cầu
truyền dữ liệu trong một chế độ truy cập dữ liệu hàng loạt. * DBREQ có thể hoạt
động mặc dù Bus địa chỉ đang được sử dụng cho một lệnh truy cập.
-

*DBACK: (đầu vào, đồng bộ)

Đầu vào này hoạt động khi bất kì chế độ truy cập dữ liệu hàng loạt nào được thực
hiện. nó có thể hoạt động ngay cả khi khơng có truy cập dữ liệu.
-

*PDA: truy cập dữ liệu đường ống (3 trạng thái đầu ra, đồng bộ)

Nếu *DREQ không thực hiện, đầu ra này chỉ ra một truy cập dữ liệu đường ống
khác, trong tiến trình, truy cập dữ liệu. Việc truy cập khơng thể hồn thành cho đến
khi truy cập đầu tiên hoàn tất.
-

OPTO-OPT2: điều khiển tùy chọn (3 trạng thái đầu ra, đồng bộ)
*CDA: Coprocessor Data Accept (đầu vào, đồng bộ)


11
29000
-

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

*WARN : cảnh báo (đầu vào, đồng bộ)
*INTRO-*INTR3: Yêu cầu ngắt (đầu vào, đồng bộ)

TRAPO-TRAP1: yêu cầu bẫy
STATO-STAT2: trạng thái CPU (đầu ra, đồng bộ)

STAT2
0
0
0
0
1
1
1
1
-

STAT1
0
0
1
1
0
0
1
1

STAT0
0
1
0
1
0

1
0
1

Điều kiện
Dừng hoặc chế độ bước
Chế độ đường ống
Tải kiểm tra chế độ hướng dẫn
Chế độ chờ
Trở về gián đoạn
Lấy gián đoạn hoặc trở về bẫy
Tìm nạp lệnh không tuần tự
Chế độ chạy

CNTLO-CNTL1: điều khiển CPU (đầu vào, khơng đơng bộ)
CLTL0

CLTL1

Chế độ

0

0

Tải lệnh kiểm tra

0

1


Dừng

1

0

Bước

1

1

Bình thường

-

*RESET: (đầu vào, không đồng bộ)

Đầu vào này đưa bộ xử lí vào chế độ RESET.
-

*TEST: chế độ kiểm tra (đầu vào, không đồng bộ)

Khi đầu vào này hoạt động, bộ xử lí trong chế độ kiểm tra.
-

MSERR: lỗi chủ (đầu ra, đồng bộ)

Đầu ra này cho biết kết quả của sự so sánh của bộ xử lí đầu ra với các tín hiệu khác

nhau được cung cấp cho các trình điều khiển. Nếu có sự khác nhau, dịng này là
“asserted” (khẳng định).
-

SYSCLK: hệ thống đồng hồ

Đây là một trong hai đầu ra, hoặc một đầu vào từ một đồng hồ ngồi tại bộ xử lí tần
số hoạt động.
-

INCICK: đồng hồ đầu vào (đầu vào)

Khi một bộ xử lí tạo đồng hồ cho chương trình, đây là một đầu ra dao động đến bộ xử
lí, tại bộ xử lí tần số hoạt động. Trong chương trình, nơi đồng hồ khơng được thiết lập
bởi bộ xử lí, tín hiệu này phải là High hoặc Low (Cao hoặc Thấp).


12
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

2. Sơ đồ khối, chức năng các khối.
Sơ đồ khối:

Vi xử lý AM29k bao gồm 6 khối chính: Khối bộ gia tốc chấm động Am29027, khối
lệnh ROM, khối bộ nhớ lệnh, khối bộ nhớ dữ liệu, khối giao tiếp bus, khối xử lý
trung tâm CPU Am29000.
Chức năng các khối:
1. CPU:

Chức năng của CPU là xử lý các chương trình và dữ kiện. CPU có nhiều kiểu dáng
khác nhau. Ở hình thức đơn giản nhất, CPU là một con chip với vài chục chân. Phức
tạp hơn, CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip khác. CPU là
một mạch xử lý dữ liệu theo chương trình được thiết lập trước. Nó là một mạch tích
hợp phức tạp gồm hàng triệu transitor trên một bảng mạch nhỏ.


13
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

CPU bao gồm: khối điều khiển (control unit), khối tính toán (Arithmetic Logic Unit)
và các thanh ghi (Registers).
- Khối điều khiển là thành phần của CPU có nhiệm vụ thơng dịch các lệnh của
chương trình và điều khiển hoạt động xử lí, được điều tiết chính xác bởi xung nhịp
đồng hồ hệ thống. Mạch xung nhịp đồng hồ hệ thống dùng để đồng bộ các thao tác xử
lí trong và ngồi CPU theo các khoảng thời gian khơng đổi. Khoảng thời gian chờ
giữa hai xung gọi là chu kì xung nhịp. Tốc độ theo đó xung nhịp hệ thống tạo ra các
xung tín hiệu chuẩn thời gian gọi là tốc độ xung nhịp – tốc độ đồng hồ tính bằng triệu
đơn vị mỗi giây.
- Khối tính tốn có chức năng thực hiện các phép toán số học và logic sau đó trả lại
kết quả cho các thanh ghi hoặc bộ nhớ.
- Các thanh ghi là các bộ nhớ có dung lượng nhỏ nhưng tốc độ truy cập rất cao, nằm
ngay trong CPU, dùng để lưu trữ tạm thời các toán hạng, kết quả tính tốn, địa chỉ
các ơ nhớ hoặc thơng tin điều khiển. Mỗi thanh ghi có một chức năng cụ thể. Thanh
ghi quan trọng nhất là bộ đếm chương trình (PC - Program Counter) chỉ đến lệnh sẽ
thi hành tiếp theo.
2. Bộ nhớ lệnh:
Được sử dụng để truyền dữ liệu giữa các thanh ghi và bộ nhớ, truyền địa chỉ một cách

hiệu quả, và cho chương trình con chuyển lệnh.
- Lệnh tải được sử dụng để di chuyển dữ liệu trong bộ nhớ hoặc bộ nhớ địa chỉ đăng
ký.
- Lệnh lưu trữ được sử dụng để di chuyển các giá trị trong các ghi vào bộ nhớ.
3. Khối giao tiếp bus:
Cung cấp các tín hiệu địa chỉ, dữ liệu và điều khiển để truy cập các bộ nhớ vào và ra.
Khối này cũng cho phép giao tiếp với bộ đồng xử lý hoặc các bộ xử lý khác.
4. Bộ gia tốc chấm động:
Thực hiện các chức năng trên số thực chẳng hạn như phép cộng, phép nhân, logarit,
hàm mũ, hàm lượng giác và nhiều loại của làm tròn số, phát hiện lỗi. Mỗi bộ gia tốc
chấm động thường có chức năng như một bộ đồng xử lí của CPU.
5. ROM instruction:
Giúp lưu giữ mã chương trình điều hành và dữ liệu mặc định của hệ thống từ vi xử lý.
Có đặc trưng là chỉ đọc được chứ khơng chỉnh sửa được.
6. Bộ nhớ dữ liệu (memory data):
Dùng để lưu trữ các dữ liệu chương trình, phục vụ trong quá trình xử lý của CPU.


14
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

3. Đặc điểm và chức năng các thanh ghi.
AMD29000 kết hợp 3 loại thanh ghi để truy câp và thao tác là: general-purpose
registers (thanh ghi thường), special-purpose registers (thanh ghi đặc biệt), và
Translation Look-Aside Buffer (TLB) registers (thanh ghi dịch sang 1 bên).
General-Purpose Registers

Amd29000 có 192 thanh ghi dành cho mục đích chung (khơng dành cho bất kì mục

đích đặc biệt nào và ln có sẵn trên bất kỳ dịng vxl amd29000 nào).
Hầu hết các tập lệnh vi xử lý là tập lệnh 3 địa chỉ. Một tập lệnh sẽ xác định 3 thanh
ghi bất kỳ trong số 192 thanh ghi để thực hiện tập lệnh. Thơng thường thì 2 trong 3
thanh ghi sẽ chứa nguồn thuật toán của lệnh và thanh còn lại chứa kết quả của lệnh.


15
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

192 thanh ghi này được chia thành 64 thanh ghi toàn cầu (Global Registers) và 128
thanh ghi địa phương (Local Registers). Global registers là địa chỉ với số tuyệt đối,
trong khi đó thì Local registers là địa chỉ liên quan đến số Stack Point.
Để tăng tốc độ xử lý, một phần của quá trình biên dịch (complier) sẽ được lưu vào
local register, các giá trị tạm thời, các thương số hệ điều hành,… được lưu trong
global register.
1 Stack Point tương ứng với 32-bíts địa chỉ ảo đầy đủ cho thời gian chạy stack.
Các thanh ghi chung có thể dược truy cập 1 cách gián tiếp, với thanh ghi có giá trị
được xác định bởi 1 thanh ghi đặc biệt khác. Giá trị của Global Registers là 0 được
xác định bởi địa chỉ thanh ghi. Một lệnh có thể xác định được việc truy cập thanh ghi
cho tất cả nguồn toán hạng hoặc kết quả.
Các thanh ghi chung có thể được chia thành các phân đoạn với mỗi 16 thanh ghi một ,
nhằm mục đích bảo vệ chúng khỏi việc truy cập trái phép. Thanh ghi được bảo vệ
trong một phân đoạn chỉ có thể được truy cập bởi chương trình thực hiện với chế độ
giám sát. Việc cố gắng truy cập để đọc viết có thể dẫn tới 1 cái bẫy (gây ra lỗi) đặt
sẵn phòng tránh kẻ gian ăn cắp thơng tin.
Special-Purpose Registers
AMD29000 có 23 loại Special Registers. Các thanh ghi điều khiển và cung cấp dữ
liệu cho các cơng việc nhất định.

Special Registers có thể được truy cập xử lý bằng cách di chuyển data. Bất kì Special
Registers nào cũng có thể được viết với nội dung của 1 General Registers và bất kì
General Registers nào cũng có thể được viết với nội dung của 1 Special Registers.
Nhưng lại không thể thao tác trực tiếp trên nội dung của các Special Registers.
Một số Special Registers được bảo vệ nghiêm ngặt và bạn chỉ có thể truy cập chúng
trong chế độ SuperVisor. Bạn sẽ gặp phải hạn chế này trong khi cố gắng truy cập để
đọc và ghi dữ liệu thanh ghi. Việc sử dụng 1 chương trình nhằm nỗ lực “hack” vào
các thanh ghi này có thể khiến bạn gặp lỗi.
Các Special Registers có bảo vệ:
Vector Area Base Address-xác định việc ngắt kết nối hoặc lỗi trong một Vector
Area.
2) Old Processor Status-Store là một bản sao của Current Processor Status (Bộ xử
lý trang thái hiện hành): Lặp lại hành động ngắt hoặc lỗi cho việc cố gắng tái
truy cập trái phép.
3) Current Processor Status-chứa thông tin liên quan đến việc kiểm sốt các
chương trình đang chạy vơ hiệu hố chế độ ngắt hoặc chế độ SuperVisor.
4) Configuration(Cấu hình)-Chứa thơng tin điều khiển mà thường thì chỉ hệ
thống mới có thể thay đổi và được thiết lập sẵn khi khởi động hệ thống.
1)


16
29000
5)

6)
7)
8)

9)

10)
11)

12)

13)
14)

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Channel Address-Chứa các địa chỉ của truy cập từ bên ngồi và nó sẽ lưu lại
chúng nếu các truy cập không thành công. Channel Address Register kết hợp
với Data và Control Register được miêu tả bên dưới sẽ cho phép tái truy cập từ
một địa chỉ bên ngoài phục vụ cho trường hợp việc truy cập thất bại do đường
truyền.
Channel Data-Chứa dữ liệu liên quan đến các hoạt động và nó sẽ lưu lại dữ
liệu đó nếu hoạt động đó thất bại.
Channel Control-Chứa thông tin điều khiển của hoạt động và sẽ lưu lại nếu
hoạt động thất bại.
Register Bank Protect-Giới hạn việc truy cập trong chế độ người dùng bởi các
nhóm 16 thanh ghi 1. Điều này giúp cho Register Bank có thể xử lý cùng lúc
nhiều tác vụ, bảo vệ các thông số hệ thống được lưu trong Global Registers
khỏi việc đánh cắp dữ liệu trong chế độ người dùng (User-Mode).
Timer Counter-Hỗ trợ điều khiển với thời gian thực và các chức năng liên
quan đến thời gian khác.
Timer Reload- Duy trì việc nạp lại, đồng bộ Timer Counter. Nó bao gồm cả
việc điều khiển các bit cho các chương trình liên quan đến thời gian.
Program Counter O và 1-Chứa địa chỉ, thông tin của các lệnh khi thực hiện
ngắt hoặc lỗi. Các bộ xử lý sẽ khởi động lại lệnh này khi việc ngắt quãng hoàn
tất.

Program Counter 2-Chứa địa chỉ của các lệnh đã hoàn thành khi việc ngắt/lỗi
được thực hiện. Các địa chỉ này sẽ không được tái thực thi khi q trình ngắt
kết thúc, nó là duy nhất.
MMU Configuration (cấu hình MMU)-Cho phép nhiều lựa chọn từ bộ quản lý
bộ nhớ (ví dụ như quảng lý ký thước trang ).
LRU Recommendation-Đơn giản hoá việc tải lại các mục trong TLB
(Translation Look-Aside Buffer) bằng cách cung cấp các thông tin về lần sử
dụng TLB gần đây khi TLB gặp lỗi.

Các Special Registers không được bảo vệ:
Indirect Pointer A, B và C-Cho phép truy cập gián tiếp từ 1 Global Registers.
Q-cung cấp thêm các bit toán hạng phục vụ cho nhân và chia.
ALU Status-Chứa thông tin về kết quả của phép tính số học và logic, và kiểm
sốt hoạt động của các tập lệnh nhất định.
4) Byte Pointer-Chứa một byte hoặc nửa byte. Thanh ghi này có thể được truy
cập qua thanh ghi ALU Status.
5) Funnel Shift Count-Cung cấp thêm bit cho các toán hạng dài (toán hạng
double-word) những thanh ghi này cũng có thể truy cập qua thanh ghi ALU
Status.
6) Load/Store Count Remaining-Duy trì việc đếm số lượng đã nạp và xét xem đã
thiếu hay đủ để quyết định nạp tiếp hay dừng. Việc đếm số lượng đã nạp này
phải được khởi tạo trước khi các hoạt động bắt đầu. Thanh ghi này cũng có thể
được truy cập thông qua thanh ghi ALU Status.
1)
2)
3)


17
29000


Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

TLB Registers
Translation Look-Aside Buffer (TLB) là 1 danh mục trong các đơn vị quản lý bộ nhớ
(Memory Management Unit) của amd29000 được truy cập với 128 thanh ghi TLB.
Một TLB đơn sẽ có 2 thanh ghi TLB. Do đó thanh ghi TLB được ghép nối trực tiếp.
Thanh ghi TLB chỉ có thể truy cập bằng cách di chuyển dữ liệu. Bất kì thanh ghi TLB
nào cũng có thể viết nội dung với các thanh ghi General và ngược lại. Nhưng lại
không được thực hiện trực tiếp trên nội dung của thanh ghi TLB.
Thanh ghi TLB có thể được truy cập qua chế độ SuperVisor. Áp dụng cho cả việc viết
và đọc. Việc nỗ lực truy cập vào chúng từ chương trình trong chế độ người dùng có
thể gây ra lỗi.


18
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

4. Nguyên lý làm việc.


Đơn vị xử lý trung tâm CPU:

CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic (ALU), các thanh ghi, các khối
lôgic và các mạch giao tiếp.
Chức năng của CPU là tiến hành các thao tác tính tốn xử lý, đưa ra các tín hiệu địa
chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình
đưa ra thơng qua các lệnh (Instructions).



Bộ nhớ:

Nhìn chung có hai loại bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ nhớ
chương trình dùng để chứa mã chương trình hướng dẫn CPU thực hiện một nhiệm vụ
nào đó.
Thơng thường thì bộ nhớ chương trình là các loại bộ nhớ “không bay hơi” (nonvolatile), nghĩa là không bị mất nội dung chứa bên trong khi ngừng cung cấp nguồn
ni. Có thể kể ra một số bộ nhớ thuộc loại này như: ROM, PROM, EPROM,
EEPROM, Flash.
Bộ nhớ dữ liệu là bộ nhớ dùng để chứa dữ liệu (bao gồm các tham số, các biến tạm
thời…). Tuỳ thuộc loại dữ liệu mà bộ nhớ loại này có thể là loại “không bay hơi”
hoặc “bay hơi” (mất dữ liệu khi cắt nguồn nuôi). Loại “bay hơi” thường thấy là các
bộ nhớ SRAM.


Cổng vào/ra song song:

Đây là các đường tín hiệu được nối với một số chân của IC dùng để giao tiếp với thế
giới bên ngoài IC. Giao tiếp ở đây là đưa điện áp ra hoặc đọc vào giá trị điện áp tại
chân cổng. Các giá trị điện áp đưa ra hay đọc vào chỉ có thể được biểu diễn bởi một
trong hai giá trị lôgic (0 hoặc 1).
Trong kỹ thuật vi xử lý, người ta thường dùng quy ước lôgic dương: giá trị lôgic 0
ứng với mức điện áp thấp xấp xỉ 0VDC, giá trị lôgic 1 ứng với mức điện áp cao xấp
xỉ +5VDC. Tùy loại vi xử lý mà “khoảng xấp xỉ” đó là khác nhau nhưng nhìn chung
là tương thích với mức lơgic TTL.
Mỗi cổng vào/ra song song thường gồm 08 đường vào/ra khác nhau và gọi là các
cổng 08 bit.
Các đường tín hiệu vào/ra của các cổng và thuộc cùng một cổng là độc lập với nhau.
Điều đó có nghĩa là ta có thể đưa ra hay đọc vào các giá trị lôgic khác nhau đối với

từng chân cổng (từng đường tín hiệu vào/ra).
Một điều cần chú ý nữa đối với các cổng vào/ra đó là chúng có thể được tích hợp
thêm (nói đúng hơn là kiêm thêm) các chức năng đặc biệt liên quan đến các ngoại vi
khác.


19
29000



Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

Cổng vào/ra nối tiếp:

Khác với cổng song song, với cổng nối tiếp các bit dữ liệu được truyền lần lượt trên
cùng một đường tín hiệu thay vì truyền cùng một lúc trên các đường tín hiệu khác
nhau.
Thơng thường thì việc truyền dữ liệu bằng cổng nối tiếp phải tuân theo một cơ chế,
một giao thức hay một nguyên tắc nhất định. Có thể kể ra một số giao thức như SPI,
I2C, SCI…
Cổng nối tiếp có 02 kiểu truyền dữ liệu chính:
- Truyền đồng bộ (synchronous): thiết bị truyền và thiết bị nhận đều dùng chung một
xung nhịp (clock).
- Truyền dị bộ (asynchronous): thiết bị truyền và thiết bị nhận sử dụng hai nguồn
xung nhịp riêng.
Tuy nhiên hai nguồn xung nhịp này không được khác nhau quá nhiều. Xung nhịp là
yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và nó có vai trị xác định giá trị
của bit dữ liệu (hay nói đúng hơn là xác định thời điểm đọc mức lôgic trên đường
truyền dữ liệu).

Cổng nối tiếp có thể có một trong các tính năng sau:
- Đơn cơng: thiết bị chỉ có thể hoặc truyền hoặc nhận dữ liệu.
- Bán song cơng: thiết bị có thể truyền và nhận dữ liệu nhưng tại một thời điểm chỉ có
thể làm một trong hai việc đó. Song cơng: thiết bị có thể truyền và nhận dữ liệu đồng
thời.


Bộ đếm/Bộ định thời:

Đây là các ngoại vi được thiết kế để thực hiện một nhiệm vụ đơn giản: đếm các xung
nhịp. Mỗi khi có thêm một xung nhịp tại đầu vào đếm thì giá trị của bộ đếm sẽ được
tăng lên 01 đơn vị (trong chế độ đếm tiến/đếm lên) hay giảm đi 01 đơn vị (trong chế
độ đếm lùi/đếm xuống).
Xung nhịp đưa vào đếm có thể là một trong hai loại:
- Xung nhịp bên trong IC. Đó là xung nhịp được tạo ra nhờ kết hợp mạch dao động
bên trong IC và các linh kiện phụ bên ngoài nối với IC. Ta có thể ví đó là “nhịp tim”
để tồn bộ các phần cứng bên trong vi xử lý (bao gồm cả CPU và các ngoại vi) có thể
hoạt động được. Trong trường hợp sử dụng xung nhịp loại này, người ta gọi là các bộ
định thời (timers). Do xung nhịp bên loại này thường đều đặn nên ta có thể dùng để
đếm thời gian một cách khá chính xác.
- Xung nhịp bên ngồi IC. Đó là các tín hiệu lôgic thay đổi liên tục giữa 02 mức 0-1
và không nhất thiết phải là đều đặn. Trong trường hợp này người ta gọi là các bộ đếm


20
29000

Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD

(counters). Ứng dụng phổ biến của các bộ đếm là đếm các sự kiện bên ngoài như đếm

các sản phầm chạy trên băng chuyền, đếm xe ra/vào kho bãi… Một khái niệm quan
trọng cần phải nói đến là sự kiện “tràn” (overflow). Nó được hiểu là sự kiện bộ đếm
đếm vượt quá giá trị tối đa mà nó có thể biểu diễn và quay trở về giá trị 0. Với bộ
đếm 8 bit, giá trị tối đa là 255 và là 65535 với bộ đếm 16 bit.
Ngoài các phần cứng nêu trên cịn phải kể đến một khối lơgic khác là khối giao tiếp
bus. Khối này có chức năng ghép nối giữa các bus bên trong chip và các chân đưa ra
ngồi chip. Mục đích của việc đưa các tín hiệu địa chỉ, dữ liệu và điều khiển ra ngoài
là nhằm mở rộng khả năng phối ghép thêm của vi xử lý hợp trên IC.
Thơng thường thì số lượng các đường tín hiệu là giữ ngun khi đưa ra ngồi chip,
tuy nhiên trong một số trường hợp số lượng các đường tín hiệu có thể nhỏ hơn số
lượng thực bên trong (ví dụ như trường hợp của vi xử lý 8088, bus dữ liệu bên trong
là 16 bit nhưng đưa ra ngồi chỉ có 8 bit).
Khi đưa ra ngồi, các tín hiệu địa chỉ và dữ liệu có thể được ghép với nhau (cùng sử
dụng chung một số chân nào đó) hoặc được tách riêng (tín hiệu địa chỉ dùng một số
chân, tín hiệu dữ liệu dùng một số chân khác).
Người ta thường “dồn kênh” (multiplex), tức là ghép chức năng, giữa bus địa chỉ và
bus dữ liệu để giảm thiểu số chân cần thiết. Trong trường hợp này, tín hiệu địa chỉ sẽ
xuất hiện trước, sau đó là tín hiệu dữ liệu trên cùng một tập hợp các đường tín hiệu.
Để tách được 2 loại tín hiệu đó thì nhà sản xuất cung cấp cho người sử dụng một
đường tín hiệu điều khiển có tên là tín hiệu chốt địa chỉ (thường ký hiệu là ALE). Tín
hiệu này sẽ tích cực khi tín hiệu địa chỉ xuất hiện và khơng tích cực khi tín hiệu dữ
liệu xuất hiện trên bus. Các IC thích hợp với việc tách tín hiệu địa chỉ và dữ liệu là
các IC thuộc họ 74xx373/374 hoặc 74xx573/574.
Một điều chúng ta cần chú ý rằng những CPU của AMD 29000 có thể làm việc với
những tốc độ dưới với tốc độ đã thông báo như 1600 MT/s (800MHz) hoặc 200 MT/s
(1000 MHz). Trong thực tế chúng có thể làm việc với tốc độ 400 MT/s (200 MHz),
800 MT/s (400 MHz), 1,200 MT/s (600 MHz), 1,600 MT/s (800 MHz) hoặc 2,000
MT/s (1,000 MHz).
-Dưới đây chúng tôi liệt kê ra một số tốc độ :
200 MHz = 400 MT/s = 800 MB/s

400 MHz = 800 MT/s = 1,600 MB/s
600 MHz = 1,200 MT/s = 2,400 MB/s
800 MHz = 1,600 MT/s = 3,200 MB/s
1,000 MHz = 2,000 MT/s = 4,000 MB/s.



×