Chuẩn Standard Phát triển (năm)



tải về 101.65 Kb.
Chuyển đổi dữ liệu30.08.2016
Kích101.65 Kb.
#29427
Định nghĩa ATA

Advanced Technology Attachment ( ATA) là chuẩn kết nối cho các thiết bị lưu trữ như là đĩa cứng, CD – ROM trong máy tính cá nhân.



ATA ban đầu truy xuất dùng 28 bit địa chỉ, cho phép 228 (268,435,456) sector. Vậy có thể lưu trữ tối đa 137gigabytes. Chuẩn dùng trong PC BIOS hỗ trợ 7.88 GIB ( 8.46GB) với 1024 cylinders, 256 heads and 63 sectors

Chuẩn
Standard


Phát triển
(năm)


Công bố
(năm)


Loại bỏ
(năm)


PIO
Modes


DMA
Modes


UDMA
Modes


Parallel Speed
(MBps)


Serial Speed
(MBps)


Đặc tính

ATA-1

1988

1994

1999

02

0




8,33




Hộ trợ lên tới 136.9GB; BIOS issues not addressed

ATA-2

1993

1996

2001

04

02




16,67




Faster PIO modes; CHS/LBA BIOS translation defined up to 8.4GB; PC-Card

ATA-3

1995

1997

2002

04

02




16,67




SMART; improved signal integrity;
LBA support mandatory; eliminated single-word DMA modes

ATA-4

1996

1998




04

02

02

33,33




Ultra-DMA modes; ATAPI Packet Interface;
BIOS hỗ trợ tới 136.9GB

ATA-5

1998

2000




04

02

04

66,67




Faster UDMA modes; 80-pin cable with autodetection

ATA-6

2000

2002




04

02

05

100




100MBps UDMA mode; extended drive and BIOS support up to 144PB

ATA-7

2001

2004




04

02

06

133

150

133MBps UDMA mode; Serial ATA

ATA-8

2004







04

02

06

133

150

Phiên bản phụ

SMART = Self-Monitoring, Analysis, and Reporting Technology

ATAPI = AT Attachment Packet Interface


MB = Megabyte; million bytes
GB = Gigabyte; billion bytes
PB = Petabyte; quadrillion bytes
CHS = Cylinder, Head, Sector
LBA = Logical block address
PIO = Programmed I/O
DMA = direct memory access
UDMA = Ultra DMA

Cho tới khi sự ra đời của Serial ATA, đầu nối 40 chân kết nối với cáp ribbon. Mỗi cáp có 2 đến 3 đầu nối, mỗi đầu nối có thể gắn với 1 bộ điều hợp kết nối với máy tính, còn lại có thể gắn vào device cứng. Cáp ATA song song truyền dữ liệu đồng thời 16 bit.




ATA/ATAPI-6 có chế độ truyền Ultra DMA ở mode 5 hay là Ultra DMA 100 (100MB/S). Nó sử dụng 48 – LBA và 16 bit sector count làm cho dung lương có thể đạt 144 petabytes (144,000,000 gigabytes)
Có 2 chế độ định địa chỉ trong HDD mà ATA hỗ trợ là địa chỉ CHS (Cylinder-head-Sector) và LBA (Logical Block Address).

Kiểu định địa chỉ CHS là cách định địa chỉ vật lí trong đó xác định chính xác Cylinder, head, Sector nào được truy cập.

Kiểu định địa chỉ LBA là kiểu định địa chỉ truyến tính. ATA sẽ tự chuyển đổi kiểu định địa chỉ này ra các Cylinder, head, Sector để ghi lên đĩa nên người lập trình không cần quan tâm đến vị trí vật lý nào được ghi.

LBA = Cylinder * nH * nS + Head * nS + (S-1)

CHS to LBA conversion: LBA = ( C x HpC + H) x SpH + S –1
LBA to CHS conversion: C = LBA / (HpC x SpH)

H = (LBA / SpH) mod (HpC)

S = (LBA mod( SpH)) + 1
2. Định nghĩa thanh ghi

2.1. Địa chỉ Device

- Theo hoạt động của một bộ vi điều khiển, chỉ thiết bị được chọn mới nhận lệnh từ host. Theo mặc định host sẽ ghi vào cả hai device, thiết bị nào nhận lệnh được xác định thông qua bit DEV.

- Dữ liệu được truyền song song từ bộ nhớ host tới bộ đệm của device hoặc ngược lại. Device sẽ thi hành các lệnh đọc hoặc ghi vào media. Dữ liệu đọc từ media được lưu trữ trong bộ đệm device chờ để truyền lên host hoặc ghi vào media.

- Device sử dụng giao tiếp với host thông qua lập trình để thực thi lệnh và trả lại trạng thái cho host khi lệnh hoàn thành. Khi 2 thiết bị kết nối với cáp, lệnh được truyền song tới 2 device và thông qua lệnh EXECUTE DEVICE DIAGNOSTIC thì chỉ device nào được chọn lựa mới thực thi lệnh. Cả hai device cùng thực thi lệnh EXECUTE DEVICE DIAGNOSTIC để biết Device nào được chọn.

Khi thanh ghi điều khiển device (device register) được ghi, dựa vào bit DEV để phân biệt thiết bị nào dc chọn, nếu DEV = 0 device 0 được chọn, khi DEV =1 thì devive 1 được chọn.

Khi host đọc hoặc viết giá trị vào device. Device sẽ đáp ứng qua các bước sau

1. Device không ở mode sleep, kết quả ở bảng 14.

2. Nếu DMACK được xác nhận, device ở mode sleep sẽ bỏ qua DIOW-/DIOR kết quả ở bảng 19 hoặc 20.

















2.2 I/O của thanh ghi

Khối thanh ghi lệnh dùng để gửi lệnh đến device hoặc báo cáo trạng thái của thanh ghi. các thanh ghi đó là LBA High, LBA Mid, Device, Sector Count, Command, Status, Features, Error, and Data registers. Khối thanh ghi gồm thanh ghi điều khiền device và thanh ghi trạng thái.

Mỗi thanh ghi có định dạng sau:

- Địa chỉ - địa chỉ CS và DA của thanh ghi

- Hướng - chỉ ra nếu thanh ghi là chỉ đọc, chỉ ghi hay cà đọc và ghi

- sự hạn chế truy xuất - chỉ ra khi thanh ghi được truy xuất

- Tác dụng - chỉ ra tác dụng khi thanh ghi được truy xuất

- Chức năng mô tả - mô tả chức năng của thanh ghi

- Mô tả trường/bit- mô tả nội dung của thanh ghi

2.3 Thanh ghi trạng thái luôn phiên (Alternate Status register)

Địa chỉ



A : xác định

N : không xác định

- Hướng : thanh ghi chỉ đọc, nếu bị ghi bởi host thì thanh ghi điều khiển device cũng bị ghi

- khi bit(busy) Bsy =1 thì các bit khác trong thanh ghi ko dc dùng .Nội dung thanh ghi ko hợp lệ khi device ở mode sleep.

- Đọc thanh ghi sẽ không xóa chờ ngắt

- Thanh ghi này chứa các thông tin giống như thanh ghi trạng thái (Status Register)



2.4 Thanh ghi lệnh ( Command register)
Địa chỉ


- Thanh ghi chỉ ghi, nếu host đọc địa chỉ này, thanh ghi trạng thái sẽ được đọc.

- Thanh ghi chỉ được ghi khi BSY ,DRQ = 0 và DMACK không xác định. Nếu ghi khi BSY, DRQ =1 ngoại trừ lệnh device reset nếu không kết quả ghi sẽ không xác định.

- Lệnh sẽ thực thi là nội dung trong thanh ghi lệnh, Quá trình ghi vào thanh ghi này sẽ xóa các điều kiện chờ ngắt.

\


2.5 Data port

Địa chỉ : Khi DMACK xác nhân, CS0 và CS1 = 0 thanh ghi này gồm 16 bit


Hướng : đọc và ghi

- Port này được truy xuất bởi host chỉ khi DMACK và DMARQ được xác định

- DMA truy xuất dữ liệu đọc và ghi từ Port phải thông qua nhiều quá trình đọc và ghi vào port . Trong quá trình thực hiện này thì dữ liệu là không xác định.

- Độ rộng dữ liệu là 16 bit



2.6 Thanh ghi dữ liệu ( Data register)

Địa chỉ


- Hướng đọc và ghi

- Truyền dữ liệu theo giao thức PIO khi DRQ = 1 và DMACK không xác định. Nội dung thanh ghi không hợp lệ khi device ở mode sleep

- PIO truy xuất dữ liệu từ thanh ghi truy xuất dữ liệu đọc và ghi từ Port phải thông qua nhiều quá trình đọc và ghi vào thanh ghi . Trong quá trình thực hiện truy xuất này thì dữ liệu là không xác định

- Độ rộng thanh ghi là 16 bit, khi CFA Device ở mode PIO 8 bit thì độ rộng thanh ghi là 8 bit thấp (DD7 tới DD0)

2.7 Thanh ghi device

Địa chỉ


- Hướng đọc và ghi

- Thanh ghi chỉ được ghi khi BSY, DSQ = 0 và DMACK không xác nhận. Nội dung thanh ghi là hợp lệ chỉ khi BSY =0.

- Bit 4 DEV để lựa chọn device, các bít khác là tham số lệnh khi khi thanh ghi lệnh (Command Register) được ghi.

- Nội dung thanh ghi



Obsolete : Không dùng

# : Tham số phụ thuộc lệnh
7.8 Thanh ghi điều khiển device (Device Control register)

Địa chỉ:



- Thanh ghi chỉ ghi, Nếu địa chỉ này được đọc thì thanh ghi trạng thái luôn phiên (Alternate Status register) sẽ được đọc

- Thanh ghi này chỉ được ghi khi DMACK không xác nhận

- Thanh ghi này cho phép phần mềm host reset thiết bị gắn theo và cho phép hoặc không cho phép tín hiệu yêu cầu ngắt từ device. Khi thanh ghi này được ghi, cả 2 thiết bị sẽ đáp ứng với việc ghi bất chấp thiết bị nào được chọn. Khi bit SRST được xét 1 thì cả 2 thiết bị sẽ chạy phần mềm reset giao thức . Device sẽ đáp ứng bit SRST khi ở mode sleep.

- Nội dung thanh ghi




HOB: (high order byte) định nghĩa 48-bit Address feature set (281,474,976,710,655 sectors)

bit (6:3) đặt trước

SRST là bit phần mềm host reset bit

Bit nIEN cho phép device xác nhận ngắt từ host.



2.9 Thanh ghi lỗi (Error register)

Địa chỉ



- Thanh ghi chỉ ghi, Nếu host ghi địa chỉ này thì thanh ghi đặc tính (Features register) bị ghi

- Nội dung thanh ghi hợp lệ khi BSY, DSQ = 0 và ERR = 1, bật nguồn, phần cứng hoặc phần mềm reset, sau khi hoàn thành lệnh EXECUTE DEVICE DIAGNOSTICS or DEVICE RESET. Không hợp lệ khi device ở mode sleep.

- Tiếp theo bật nguồn, phần cứng hoặc phần mềm reset, sau khi hoàn thành lệnh EXECUTE DEVICE DIAGNOSTICS or DEVICE RESET thanh ghi sẽ chứa mã diagnostic.

Nội dung thanh ghi:




Bit 2 – ABRT (lệnh hủy) được set lên 1 chì ra lệnh yêu cầu bị hỏng bởi vì mã lệnh hay tham số lệnh sai, lệnh không hỗ trợ hoặc thành phần khác bị sai.

# - Tham số phụ thuộc lệnh.



2.10 Thanh ghi đặc tính (Features register)

Địa chỉ:


-Đây là thanh ghi chỉ ghi, Nếu host ghi lên thanh ghi này, thanh ghi lỗi được đọc

- Thanh ghi này được ghi chỉ khi BSY, DRQ = 0 và DMACK xác định, nếu không kết quả không xác định được.

- nội dung của thanh ghi sẽ trở thành tham số lệnh khi thanh ghi lệnh được ghi.

2.11 Thanh ghi LBA cao (LBA High register)

Địa chỉ


- Hướng : đọc và ghi

- Khi BSY, DRQ = 0 và DMACK không xác nhận, thanh ghi được ghi. Nội dug thah ghi hợp lệ khi BSY, DRQ = 0. Không hợp lệ khi BSY, DRQ = 1 và và không xác định device ở mode sleep.

2.12 Thanh ghi LBA thấp (LBA Low register)

Địa chỉ


- Hướng : đọc và ghi

- Khi BSY, DRQ = 0 và DMACK không xác nhận, thanh ghi được ghi. Nội dung thanh ghi hợp lệ khi BSY, DRQ = 0. Không hợp lệ khi BSY, DRQ = 1 và không xác định device ở mode sleep

2.13 Thanh ghi LBA giữa (LBA Mid register)

Địa chỉ


- Khi BSY, DRQ = 0 và DMACK không xác nhận, thanh ghi được ghi. Nội dug thah ghi hợp lệ khi BSY, DRQ = 0. Không hợp lệ khi BSY, DRQ = 1 và và không xác định device ở mode sleep.



2.14 Thanh ghi số sector (Sector Count register)

Địa chỉ



-Khi BSY, DRQ = 0 và DMACK không xác nhận, thanh ghi được ghi. Nội dug thah ghi hợp lệ khi BSY, DRQ = 0. Không hợp lệ khi BSY, DRQ = 1 và và không xác định device ở mode sleep.

2.15 Thanh ghi trạng thái (status register)

Địa chỉ


- Nội dung sẽ sai khi device ở mode sleep

- Việc đọc thanh ghi này khi 1 ngắt đang xử lý chưa xong sẽ gây ra xóa ngắt đó. Host không nên đọc thanh ghi trạng thái khi đang xử lí ngắt mà nên chờ tín hiệu INTRQ..

- Thanh ghi này chứa trạng thái của device, nội dung của nó được cập nhập theo trạng thái hiện thời của device.

- Nội dung thanh ghi:

BSY set lên 1 cho biết device bận. Sau khi thanh ghi lệnh được ghi BSY và DRQ sẽ được set lên 1 cho đến khi lệnh thực hiện xong hay khi thiết bị này thực hiện giải phóng bus cho chu kì lệnh.

BSY được set lên 1 khi:

1) after either the negation of RESET- or Bit SRST =1 trong thanh ghi điều khiển device

2) Sau khi ghi vào thanh ghi lệnh (Command register) nếu DRQ không được set lên 1

3) Giữa khi đang truyền của khối dùng giao thức PIO trước khi DRQ được xóa về 0

4) Sau khi PIO truyền dữ liệu vào trước khi DRQ được xóa bằng 0.

5) Trong khi lênh DMA truyền dữ liệu thì BSY hoặc DRQ hoặc cả hai được set lên 1.

6) Sau khi lệnh được nhận đến khi lệnh thực hiện xong…

Note : Bit BSY được set và clear rất nhanh do đó host sẽ nhận biết được sự thay đổi này.

Khi BSY được set lên 1, device điều khiển khối thanh ghi lệnh và:

1) Ghi vào khối thanh ghi lệnh

2) Đọc khối thanh ghi lệnh

Bsy xóa bởi device

1) Sau khi thiết lập DRQ lên 1 để báo thiết bị sẵn sàng truyền dữ liệu

2) Sau khi lệnh hoàn thành…

3)Giải phóng bus cho lệnh kế

4) Sau khi bật nguồn, phần mềm hay phần cứng reset.

Khi BSY được xóa, host sẽ điều khiển khối thanh ghi lệnh, device sẽ:

1)Không set DRQ

2) Không đổi bit ERR

3) Không thay đổi thanh ghi lệnh

4) Set bit SERV lên 1 khi bus sẵn sàng nhận lệnh

5) Xóa bit DSC sau khi hoàn thành



DRRY (device ready)

- DRRY sẽ xóa khi device reset, mở nguồn, phần cứng và phần mềm reset or DEVICE RESET or EXECUTE DEVICE DIAGNOSTIC commands for devices implementing the PACKET command feature set.



Bit DRDY được set bởi device khi:

1) Khi device chờ lệnh

2) prior to command completion except the DEVICE RESET or EXECUTE DEVICE DIAGNOSTIC command for devices implementing the PACKET feature set.

Khi DRRY được set 1:

1) Device sẽ chấp nhận và thi hành các lệnh

2) Device đang thực hiện lệnhquản lí nguồn sẽ giữ DRRY bằng 1 trong mode IDLE hoặc Standby

DRQ (Data request)

DRQ cho biết device sẵn sàng truyền dữ liệu giữa host và device. Sau khi host ghi vào thanh ghi Command, device sẽ set BSY lên 1 hoặc DRQ lên 1 đến khi device giải phóng bus cho lệnh kế.



Device sẽ set DRQ lên 1 khi:

1) Khi BSY được set lên 1 và Data sẵn sàng cho truyền PIO

2) Trong quá trình truyền DMA và cả BSY, DRQ sẽ set lên 1

Khi DRQ bit set lên 1, host có thế:

1) Truyền data theo mode PIO

2) Truyền data theo mode DMA nếu DMARQ và DMACK được xác nhận

Device sẽ xóa DRQ bằng 0 khi

1) Khi từ cuối của dữ liệu bị hỏng

2) Khi từ cuối của gói lệnh bị hỏng

Khi DRQ bị xóa, host có thể

1) Truyền data theo mode DMA nếu DMARQ và DMACK xác nhận và BSY được set lên 1

Obsolete bits

Một số bit trong thanh ghi được định nghĩa trong các chuẩn ATA trước nhưng không được dùng trong chuẩn ATA này.



ERR (Error)

ERR chỉ ra lỗi xảy ra khi thi hành lệnh trước đó.

Bit ERR sẽ được device set lên 1 khi:

1) Khi BSY hoặc DRQ được set lên 1 và xảy ra lỗi khi đang thi hành lệnh



Khi ERR được set lên 1 thì:

1) Bit trong Error register sẽ hợp lệ;

2) Device sẽ không thay đổi nội dung những thanh ghi sau đến khi lệnh mới được chấp nhận và bit SRST được set lên 1 hoặc RESETđược xác nhận:

- Error register;

- LBA High/Mid/Low registers;

- Sector Count register;

- Device register.

Device sẽ xóa ERR khi:

1) Khi lệnh mới được ghi trong thanh ghi Command

2) Khi bit SRST được set lên 1

3) Khi tín hiệu RESET được xác nhận

Bit ERR sẽ được xóa khi host bỏ qua lỗi trong thanh ghi Error
3. Các lệnh ATA
Lệnh được đưa tới device thông qua các thanh ghi chứa tham số và thanh ghi lệnh chứa mã. Các thanh ghi này có nội dung theo một bảng.

Mỗi một lệnh có định dạng sau:

Mã lệnh (Command code) : mã lệnh trong mỗi lệnh

Tính năng (Feature set) : thiết lập các tính năng có thể là bắt buộc hoặc không bắt buộc

Giao thức (Protocol) : chỉ ra giao thức được dùng trong lệnh

Ngõ vào : Nội dung của khối thanh ghi do host cung cấp

Ngõ ra bình thường: Dữ liệu trong khối thanh ghi lệnh được trả về khi hoàn tất lệnh

Ngõ ra có lỗi: Dữ liệu trong khối thanh ghi lệnh được trả về khi hoàn tất lệnh xảy ra lỗi

Điều kiện: Các điều kiện cần có trước khi lệnh được phát ra.

Chức năng lệnh



Lệnh đọc PIO
Bao gồm các lệnh Identify Drive, Read Buffer, Read Long,Read Multiple, Read Sector.

Lệnh đọc thông tin device và lệnh đọc bộ đệm mỗi lệnh sẽ truyền 1 khối đơn 512byte. Lệnh Read Long truyền 1 khối đơn 512byte và 4 byte hoặc nhiều ECC (Extented Error code). Lệnh Read Multiple sẽ truyền 1 hay nhiều khối data mà mỗi khối là bội của 512byte. Lệnh đọc sector cũng truyền 1 hay nhiều khối 512byte.


Để thực thi lệnh đọc PIO, host và device theo các trình tự sau:
1) Host ghi các tham số cần thiết lên các thanh ghi Feature :Sector Count, Sector Number, Cylinder và Drive/head.

2) Host ghi mã lệnh vào thanh ghi lệnh.

3)Drive sẽ xet bit BSY lên 1 và chuẩn bị truyền Data.

4) Khi khối data đã sẵn sàng thì, device xét bit DRQ và xóa BSY trước khi xác nhận INTRQ.

5) Sau khi phát hiện INTRQ, host sẽ đọc thanh ghi trạng thái. Khi host đọc thanh ghi trạng thái thì device sẽ phủ nhận INTRQ.

6) Host đọc 1 khối data từ thanh ghi Data.

7) Ổ đĩa xóa DRQ, nếu việc truyền khối được đòi hỏi, device sẽ xét BSY và lập lại từ bước 4.
Lệnh ghi PIO
Lệnh ghi bao gồm các lệnh Format Track, Write Buffer, Write Long, Write Multiple, Write Same, Write Sector và Write Verify.

Lệnh Format Track, Write Buffer và Write Same truyền 1 khối đơn 512byte. Lệnh Write Long truyền 1 khối đơn 512byte cùng với 4byte hoặc các byte ECC. Lệnh Write Multiple truyền 1 hay nhiều khối data mà mỗi khối là bội số 512byte. Lệnh Write Sector và Verify cũng truyền 1 hay nhiều khối 512byte.


Để thực thi lệnh ghi PIO, host và device theo các trình tự sau:
1) Host ghi các tham số cần thiết lên các thanh ghi Feature, Sector Count, Sector Number, Cylinder và Drive/head.

2) Host ghi mã lệnh vào thanh ghi lệnh.

3) Drive sẽ xet bit BSY lên 1 và chuẩn bị truyền Data.

4) Khi device chuẩn bị nhận khối data, nó sẽ xét DRQ lên 1 và xóa BSY. Khi host phát hiện DRQ xét lên 1 thì nó sẽ ghi data tới thanh ghi Data.

5) Ổ đĩa sẽ xóa DRQ và xét BSY lên 1.

6) Khi device hoàn thành nó xóa BSY và xác nhận INTRQ. Nếu khối khác cần được truyền thì device sẽ xét DRQ lên 1.

7) Sau khi phát hiện INTRQ, host sẽ đọc thanh ghi trạng thái. Khi thanh ghi trạng thái được đọc, device sẽ phủ nhận INTRQ. Nếu khối khác cần được truyền thì DRQ sẽ xét lên 1 và lập lại bước 8.

8) Host ghi 1 khối vào thanh ghi Data. Quá trình sẽ tiếp theo bước 5.


Lệnh truyền data DMA
Lệnh truyền data DMA sẽ gửi và nhận data DMA. Data truyền DMA dùng lệnh DMA khác với lệnh truyền PIO 2 điểm sau:

Data truyền được thực hiện dùng kênh Slave-DMA.

Một ngắt được phát ra bởi đĩa khi hoàn thành xong lệnh.

Việc khởi động lệnh truyền DMA giống với lệnh Read Sector và Write Sector ngoại trừ host khởi động kênh Slave-DMA trước khi phát lệnh.

Điều khiển ngắt host của truyền DMA khác với truyền PIO như sau:

Không có ngắt sector ngay tức thì được phát ra trong lệnh Multisector.

Host reset kênh Slave-DMA trước khi đọc trạng thái từ đĩa.
Lệnh truyền DMA giữa host và đĩa theo trình tự sau:
1) Host khởi động kênh Slave-DMA.

2) Host ghi các tham số cần thiết tới Feature, Sector Count, Sector Number, Cylinder và Drive/head.

3) Host ghi mã lệnh vào thanh ghi lệnh.

4) Device xét BSY.

5) Host và đĩa truyền data theo kênh Slave-DMA. Lệnh truyền DMA với 1 lỗi có thể không truyền, 1 số hay toàn bộ data trong suốt bước này. Trong bước này, DRQ không được định rõ.

6) Khi data truyền xong, đĩa sẽ xóa BSY và xác nhận INTRQ.

7) Sau khi phát hiện INTRQ, host sẽ khởi động lại kênh Slave-DMA.

8) Host đọc thanh ghi trạng thái. Khi host đọc thanh ghi trạng thái thì, device sẽ phủ nhận INTRQ.


Những lệnh không có data.
Một số lệnh ATA không có truyền data như Execute Drive Diagnostic, Initilize Drive Parameters, NOP, Recalibrate, Seek, Set Feature, Set Multiple Mode và các lệnh quản lí nguồn.
Để thực thi lệnh không có data, host và đĩa theo các trình tự sau:
1) Host ghi các tham số cần thiết vào Feature, Sector Count, Sector Number, Cylinder và Drive/head.

2) Host ghi mã lệnh vào thanh ghi lệnh.

3) Đĩa xét BSY.

4) Khi đĩa hoàn tất lệnh, nó xóa BSY và xác nhận INTRQ.

Sau khi phát hiện INTRQ, host đọc thanh ghi trạng thái. Khi host đọc thanh ghi trạng thái thì, device sẽ phủ nhận INTRQ

3.1 Device reset

- Mã lệnh : 08h

- Tính năng : dùng khi lệnh không thi hành ( treo)

- Ngõ vào




- Ngõ ra không lỗi:

Error : sẽ thay thế bằng nội dung mã Diagnostic

Device: Dev sẽ lựa chọn device

- Ngõ ra lỗi :

Nếu lệnh không được hỗ trợ và khi lệnh đang được ghi mà bit BSY hoặc DRQ set bằng 1 thì ngõ ra không xác định

Nếu lệnh không được hỗ trợ và khi lệnh đang được ghi mà bit BSY hoặc DRQ xóa bằng 0 thì ngõ ra không xác định, device đáp ứng với lệnh bị lỗi.

- Lệnh được dùng khi BSY or DRQ = 1 or DRDY = 0 hoặc khi DMARQ xác nhận or device trong mode sleep

- Lệnh DEVICE RESET cho phép reset device mà không ảnh hưởng tới những device khác


3.2 Identify device

- Mã lệnh : ECh

- Ngõ vào

- Ngõ ra


- Ngõ ra có lỗi

Device sẽ không thi hành lệnh và sẽ không có ngõ ra

- Lệnh này cho phép host lấy thông tin về device

- Khi lệnh được phát đi, device sẽ set bit BSY lên 1và chuẩn bị 256 từ thông tin device để truyền lên host, set DRQ lên 1, xóa BSY, và xác nhận INTRQ nếu nIEN xóa về 0. Host sẽ nhận dữ liệu đọc từ thanh ghi dữ liệu

Bảng 27 trình bày các thông số và ý nghĩa chứa trong bộ đệm của device















3.3 Read DMA

- Mã lệnh: C8h

- Ngõ vào


- Ngõ ra

- Ngõ ra có lỗi



ICRC sẽ set lên 1 nếu CRC bị lỗi trong truyền giao thức Ultra DMA, nội dung của bit này không giống với truyền Multiword DMA

UNC sẽ set lên 1 nếu dữ liệu bị hỏng

MC sẽ set lên 1 nếu media bị thay đổi

IDNF sẽ set lên 1 nếu địa chỉ không tìm thấy hoặc ngoài khoảng địa chỉ

MCR sẽ set lên 1 nếu media yêu cầu thay đổi được nhận biết bởi removable media device.

ABRT sẽ set lên 1 nếu lệnh không hỗ trợ hoặc có lỗi bao gồm cả lỗi IDNF, lỗi trong truyền Ultra DMA, lệnh không được hoàn thành

NM sẽ set lên 1 nếu không tìm thấy media

- Lệnh này cho phép host đọc data ( từ 0 đến 256 sector) bằng giao thức DMA

READ DMA EXT

- Mã lệnh 25h

- Dùng LBA- 48bit

- Ngõ vào



Sector Count Current: số lượng sector được truyền theo 8 bit thấp

Sector Count Previous : số lượng sector được truyền
3.4 READ NATIVE MAX ADDRESS

Mã lệnh : F8h

- Ngõ vào

- Ngõ ra


- Ngõ ra có lỗi



ABRT sẽ set lên 1 nếu lệnh không hỗ trợ hoặc không thể hoàn thành lệnh

- Đọc địa chi cao nhất của device của nhà sản xuất. Nếu địa chỉ 48bit được hỗ trợ giá trị lớn nhất trả về là 268,435,45
3.5 READ SECTOR(S)
- Mã lệnh 20h

- Ngõ vào




- Ngõ ra

DEV : Cho biết device nào được chọn

BSY : Được xóa 0 khi lệnh hoàn thành

DRDY : Sẽ được set lên 1

DF (Device default) : sẽ được xóa bằng 0

DRQ : sẽ được xóa bằng 0

ERR : sẽ được xóa bằng 0

- Ngõ ra có lỗi:



Khi xảy ra lỗi thì khối thanh ghi lệnh sẽ chứa địa chỉ sector lỗi. Dữ liệu sẽ không xác định

UNC sẽ set lên 1 nếu data có lỗi

MC sẽ set lên 1 nếu media trong removable media device thay đổi so với khi thực hiện lệnh trước

IDNF sẽ set lên 1 khi địa chỉ không tìm thấy

MCR sẽ set lên 1 khi media yêu cầu được thay đổi. Bit này được xóa bởi GET MEDIA STATUS hoặc a media access command

ABRT sẽ set lên 1 khi lệnh này không được hỗ trợ hoặc có lỗi (ICRC error, lỗi khi truyền Ultra DMA).

NM sẽ set 1 nếu không tìm thấy media trong removable media device


- Lệnh này sẽ đọc từ 1 đến 256 sector được chỉ ra trong thanh ghi sector

3.6 Seek

- Mã lệnh : 70h

- Ngõ vào


Bit LBA sẽ set lên 1 để chỉ định địa chỉ trong LBA

Bits (3:0) LBA bits (27:24)

- Ngõ ra


-Ngõ ra có lỗi

MC sẽ set lên 1 nếu media trong removable media device thay đổi so với khi thực hiện lệnh trước

IDNF sẽ set lên 1 khi địa chỉ không tìm thấy

MCR sẽ set lên 1 khi media yêu cầu được thay đổi. Bit này được xóa bởi GET MEDIA STATUS hoặc a media access command

ABRT sẽ set lên 1 khi lệnh này không được hỗ trợ hoặc có lỗi (ICRC error, lỗi khi truyền Ultra DMA).

NM sẽ set 1 nếu không tìm thấy media trong removable media device

BSY sẽ bằng o khi lệnh hoàn tất

DRDY sẽ set lên 1

DF (Device Fault) sẽ lên 1 nếu device lổi

ERR sẽ lên 1 nếu bit Error register lên 1.

- Lệnh này sẽ cho host biết thông tin về data để thực hiện lệnh sau

3.7 Set max

Set max sẽ nhận biết giá trị trên thanh ghi Features ( bảng 48)





3.8 Sex max ADDRESS

- Mã lệnh F9h

- Ngõ vào


- Ngõ ra


- Ngõ ra có lỗi

ABRT sẽ set lên 1 nếu lệnh không hỗ trợ, giá trị yêu cầu vượt quá dung lượng device, host bảo vệ bằng lệnh SET MAX ADDRESS EXT…, không hoàn thành lệnh.



3.9 READ MULTIPLE

- Mã lệnh : C4h

- Ngõ vào

Sector Count : Số lượng sector sẽ được đọc ( Từ 0 đến 256 sector)

- Ngõ ra

Error register -

UNC sẽ được set bằng 1 khi dữ liệu bị hỏng

MC sẽ set lên 1 nếu media trong removable media device thay đổi sau khi thực hiện lệnh cuối.

IDNF sẽ set lên 1 nếu địa chỉ không truy xuất được, nằm ngoài khoảng truy xuất

- Lệnh này sẽ đọc số sector được ghi trên thanh ghi sector. Khi lệnh READ MULTIPLE được phát ra thì device sẽ ngắt cho DRQ truyền data.



3.10 READ MULTIPLE EXT
- Mã lệnh 29h

- Ngõ vào



- Ngõ ra :



- Ngõ ra lỗi




- Lệnh này sẽ đọc số lượng sector chỉ định trong thanh ghi Sector Count register.

3.11 SET MULTIPLE MODE

- Mã lệnh C6h

- Ngõ vào

- Ngõ ra


- Ngõ ra lỗi



- Lệnh này sẽ thành lập số khối cho các lệnh READ MULTIPLE, READ MULTIPLE EXT, WRITE MULTIPLE, and WRITE MULTIPLE EXT.

- Nếu Sector Count register khác không thì số khối hỗ trợ và số lượng ghi trên sẽ được dùng cho các lệnh READ MULTIPLE, READ MULTIPLE EXT, WRITE MULTIPLE, and WRITE MULTIPLE EXT và cho phép các lệnh trên.

- Nếu Sector Count register = 0 thì device sẽ:

1) KHông cho phép mode Multiple, và hủy bỏ các lệnh trên

2) Đáp ứng hủy bỏ với lệnh SET MULTIPLE MODE

3) Trả lại các thiết lập mode Multiple trước đó

3.12 WRITE DMA

- Mã lệnh CAh

- Ngõ vào

- Ngõ ra


- Ngõ ra có lỗi




ICRC sẽ set lên 1 nếu interface CRC bị lỗi trong quá trình truyền Ultra DMA.

WP sẽ set lên 1 nếu medi trong removable media device được bảo vệ ghi

MC sẽ set lên 1 nếu media trong removable media device bị thay đổi so với khi thực hiện lệnh trước

- Lệnh Write DMA sẽ cho host ghi dữ liệu dùng giao thức DMA



3.12 WRITE SECTOR(S)

- Mã lệnh20h

- Ngõ vào

- Ngõ ra

- Ngõ ra có lỗi



- Lệnh này sẽ ghi từ 1 tới 256 sector được định sẵn trong thanh ghi Sector Count. Device sẽ ngắt cho mỗi khối DRQ



3.14 IDLE

- Mã lệnh E3h

- Ngõ vào

Sector count : Chỉ thời gian standby, bảng 30 định nghĩa giá trị này



- Ngõ ra


- Ngõ ra có lỗi



IDLE sẽ cho phép host thiết lập thời gian ở mode IDLE, Trong thời gian nghỉ ngắt được cho phép.



3.15 WRITE BUFFER

- Mã lệnh E8h

- Giao thức PIO data-out

- Ngõ vào

- Ngõ ra

- Ngõ ra có lỗi



ABRT sẽ được set bằng 1 nếu lệnh này không được hỗ trợ, nếu device không thể hoàn thành lệnh yêu cầu.

BSY sẽ được xóa bằng 0 chỉ ra lệnh hoàn tất

DRRY sẽ được set bằng 1



- Lệnh này cho phép host ghi nội dung của 1 sector vào bộ đệm device

- Read Buffer và Write Buffer sẽ đồng thời với nhau nếu quá trình này liên tiếp cùng truy xuất 512bytes trong Buffer.

tải về 101.65 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương