KR100386348B1 - A circuit for aligning logical sectors with physical sectors in a disk storage system - Google Patents
A circuit for aligning logical sectors with physical sectors in a disk storage system Download PDFInfo
- Publication number
- KR100386348B1 KR100386348B1 KR10-2000-0033403A KR20000033403A KR100386348B1 KR 100386348 B1 KR100386348 B1 KR 100386348B1 KR 20000033403 A KR20000033403 A KR 20000033403A KR 100386348 B1 KR100386348 B1 KR 100386348B1
- Authority
- KR
- South Korea
- Prior art keywords
- data stream
- logical
- data
- length
- physical
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1232—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1264—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
- G11B2020/1288—Formatting by padding empty spaces with dummy data, e.g. writing zeroes or random data when de-icing optical discs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
논리 섹터 포맷과 물리 섹터 포맷 사이의 데이터 변환을 관리하는 회로가 개시된다. 패딩 모드에서, 이 회로는 논리 길이를 갖는 논리 섹터 포맷의 데이터 스트림에 패딩값을 추가함으로써, 물리 길이를 갖는 물리 섹터 포맷의 데이터 스트림을 발생시킨다. 추출 모드에서, 이 회로는 물리 섹터 포맷의 데이터 스트림으로부터 논리 섹터 포맷의 데이터 스트림을 추출해 낸다.A circuit for managing data conversion between a logical sector format and a physical sector format is disclosed. In the padding mode, this circuit generates a data sector in physical sector format having a physical length by adding a padding value to the data stream in a logical sector format having a logical length. In the extraction mode, this circuit extracts the data stream in logical sector format from the data stream in physical sector format.
Description
본 발명은 디스크 저장 시스템에 관한 것으로, 더 구체적으로는 물리 섹터의 경계(boundary of physical sector)에 대해 논리 섹터의 경계(boundary of logical sector)를 맞추기(align) 위해 논리 섹터에 대해 패딩 데이터(padding data)를 추가(appending) 및 추출(extracting)하는 회로에 관한 것이다.The present invention relates to a disk storage system, and more particularly to padding the logical sectors to align the boundaries of the logical sectors with the boundaries of the physical sectors. A circuit for appending and extracting data is provided.
전형적인 디스크 저장 시스템상에서 데이터는 물리 섹터로 편성되는데, 이 때 각각의 물리 섹터는 사전 정의된 개수의 연속적인 바이트를 포함하고 있다. 데이터가 디스크 드라이브에 기록되거나 또는 디스크 드라이브로부터 판독될 때, 전송되는 데이터의 양은 반드시 물리 섹터의 단위로 전송되어야 하고, 모든 데이터 전송은 반드시 물리 섹터의 경계에서 시작 및 종료해야 한다. 예를 들어, 물리 섹터가 514 바이트로 이루어진다면, 데이터 전송은 514 바이트, 1028 바이트, 1542 바이트로 이루어질 수 있다.In a typical disk storage system, data is organized into physical sectors, where each physical sector contains a predefined number of consecutive bytes. When data is written to or read from the disk drive, the amount of data to be transferred must be transmitted in units of physical sectors, and all data transfers must begin and end at the boundary of the physical sector. For example, if the physical sector consists of 514 bytes, the data transfer may consist of 514 bytes, 1028 bytes, 1542 bytes.
프로세서가 디스크 드라이브를 액세스할 때, 예를 들면, 프로세서가 파일을 기록할 때, 프로세서는 아마 정확히 하나의 물리 섹터 또는 그 정수 배의 물리 섹터에 대해 동작할 필요가 없을 것이다. 대신에, 프로세서는 아마도 예를 들어 514 바이트, 1028 바이트, 1542 바이트 등이 아닌 양의 데이터를 필요로 할 것이다.When a processor accesses a disk drive, for example when the processor writes a file, the processor probably does not need to operate on exactly one physical sector or an integer multiple of that sector. Instead, the processor probably needs an amount of data that is not, for example, 514 bytes, 1028 bytes, 1542 bytes, or the like.
프로세서와 데이터 저장 시스템간에 데이터를 전송하는 상황에서, 프로세서에 의해 조작되는 데이터는 논리 섹터로 불린다. 전술한 바와 같이, 논리 섹터의 경계는 통상적으로 물리 섹터의 경계와 일치하지 않는다. 따라서, 데이터 전송은 종종 실제로 프로세서에 의해 이용되는 것보다 더 많은 데이터의 조작을 수반한다.In the situation of transferring data between a processor and a data storage system, the data manipulated by the processor is called a logical sector. As mentioned above, the boundaries of logical sectors typically do not coincide with the boundaries of physical sectors. Thus, data transfer often involves manipulating more data than is actually used by the processor.
디스크 저장 시스템의 설계 목표는 기록 밀도(recording density)와 처리량(throughput)을 최대화하는 것을 포함한다. 기록 밀도는 디스크 저장 시스템의 전체 메모리 용량에 대해 유효 데이터가 점유하는 메모리의 비율(ratio)이다. 처리량은 특정 시간 동안 시스템에 의해 처리되는 전체 작업량의 측정치이다.Design goals for disk storage systems include maximizing recording density and throughput. The write density is the ratio of the memory occupied by the valid data to the total memory capacity of the disk storage system. Throughput is a measure of the overall throughput handled by the system for a particular time.
다음의 특허들은 기록 밀도와 처리량을 최대화하려고 시도한 대표적인 종래 기술이다. 일반적으로, 이들은 디스크 드라이브상의 데이터를 편성하거나 또는 논리 및 물리 섹터 경계들의 불일치(misalignment)를 처리하는 시스템 또는 방법 측면을 다룬다.The following patents are representative prior art attempts to maximize recording density and throughput. In general, they address system or method aspects of organizing data on disk drives or handling misalignment of logical and physical sector boundaries.
발명의 명칭이 "Variable Zone Layout For Information Storage Disk Drive"인 에모 등(Emo et al.)의 미국 특허 제 5,596,458호는 다수의 디스크 표면을 갖는 디스크에 대한 각각의 판독/기록 헤드의 성능 특성을 측정함으로써 기록 밀도를 개선하는 방법 및 시스템을 기술한다. 존(zone) 경계는 성능 특성에 근거하여, 그리고 데이터가 특정 존에 대해 판독 및 기록되는 빈도(frequency)에 근거하여 각각의 디스크 표면에 대해 설정된다. 디스크의 표면상의 존 경계가 반드시 수직적으로 정렬될 필요는 없을 것이다. 기록 밀도는 사전 정의된 수준보다 더 낮은 성능 특성을 갖는 판독/기록 헤드의 판독/기록 빈도를 줄임으로써 개선된다.US Patent No. 5,596,458 to Emo et al., Entitled "Variable Zone Layout For Information Storage Disk Drive," measures the performance characteristics of each read / write head for a disk having multiple disk surfaces. By this, a method and system for improving recording density are described. Zone boundaries are established for each disk surface based on performance characteristics and based on the frequency with which data is read and written for a particular zone. Zone boundaries on the surface of the disk may not necessarily be vertically aligned. The write density is improved by reducing the read / write frequency of the read / write head with lower performance characteristics than the predefined level.
발명의 명칭이 "Multi-Drive Virtual Mass Storage Device And Method Of Operating Same"인 클라인 등(Klein et al.)의 미국 특허 제 5,671,439호는 상이한 물리 장치에 대해 할당되는 블록들로 편성되는 가상의 대용량 저장 장치(virtual mass storage device)를 기술한다. 물리 장치는 가상 장치의 총 전송율을 증가시키기 위해 병렬로 동작한다.US Pat. No. 5,671,439 to Klein et al., Entitled "Multi-Drive Virtual Mass Storage Device And Method Of Operating Same," describes a virtual mass storage organized into blocks that are allocated for different physical devices. Describe a virtual mass storage device. Physical devices operate in parallel to increase the total data rate of the virtual device.
발명의 명칭이 "Changing Page Size In Storage Media Of Computer System"인 맨지스 등(Manges et al.)의 미국 특허 제 5,765,201호는 데이터가 헤더에 의해 정의되는 블록 혹은 섹터에 저장되는 시스템에 적용되는 발명을 기술한다. 메모리 대상과 세그먼트를 정의하고, 물리 메모리에 가상 메모리 어드레스를 지정하기 위해 테이블이 이용된다. 헤더와 테이블은 물리 메모리의 섹터 혹은 페이지내의 모든 데이터를 재기록함이 없이 변경될 수 있다. 따라서, 페이지 사이즈 역시 새로운 시스템 구성 요소를 수용하도록 변경될 수 있다.U.S. Patent No. 5,765,201 to Manges et al., Entitled " Changing Page Size In Storage Media Of Computer System ", applies to a system in which data is stored in blocks or sectors defined by headers. Describe. Tables are used to define memory destinations and segments, and to assign virtual memory addresses to physical memory. Headers and tables can be changed without rewriting all data in sectors or pages of physical memory. Thus, the page size can also be changed to accommodate new system components.
발명의 명칭이 "Hardware Alignment In A Headerless Disk Drive Architecture"인 쿠울 등(Kool et al.)의 미국 특허 제 5,802,584호는 디스크 드라이브의 물리 섹터로의 데이터 전송 및 물리 섹터로부터의 데이터 전송을 제어하는 시스템을 개시한다. 이 시스템은 이벤트 제어 워드(event control word)를 디코딩하는 디스크 콘트롤러(disk controller)와, 판독/기록 헤드가 디스크상에서 섹터를 통과할 때마다 증가하는 카운터(counter)를 포함한다. 카운터는 헤드가 위치되어 있는 데이터 프레임을 표시함으로써 판독/기록 헤드의 위치를 나타낸다. 정렬 프로세서(alignment processor)는 카운터에 의해 표시되는 데이터 프레임에 대응하는 제어 워드를 찾기 위해 제어 워드를 주사(scan)한다. 주사하는 동안, 정렬 프로세서는 또한 판독/기록 헤드의 위치에 의해 표시되는 논리 및 물리 섹터 카운터를 정렬한다. 그 이후, 디스크 콘트롤러는 정렬된 값들을 이용하여 제어 워드를 디코딩하고 데이터 전송을 제어하기 시작한다.U.S. Patent No. 5,802,584 to Kool et al., Entitled "Hardware Alignment In A Headerless Disk Drive Architecture," discloses a system for controlling data transfer to and from data sectors of a disk drive. Initiate. The system includes a disk controller that decodes an event control word and a counter that increments as the read / write head passes through the sectors on the disk. The counter indicates the position of the read / write head by indicating the data frame in which the head is located. An alignment processor scans the control word to find the control word corresponding to the data frame indicated by the counter. During the scan, the alignment processor also aligns the logical and physical sector counters indicated by the position of the read / write head. Thereafter, the disk controller uses the aligned values to begin decoding the control word and controlling the data transfer.
발명의 명칭이 "System And Method For Providing Variable Sector-Format Operation To A Disk Access System"인 머피 등(Murphy et al.)의 미국 특허 제 5,813,025호는 사전 정의된 논리 섹터 포맷과 가변 물리 섹터 포맷 사이에서 I/O 요구를 처리하는 시스템 및 방법을 기술한다. 판독 동작이 물리 섹터의 중앙에서 시작한 경우, 첫 번째 논리 섹터의 앞에 있는 데이터는 폐기되고, 사용자 요청 데이터(user request data)는 사용자 버퍼에 저장된다. 기록 동작이 물리 섹터의 중앙에 위치된 논리 섹터에 대한 것일 경우, 물리 섹터는 논리 섹터에 대한 기록 요구에 따라 판독 및 수정된 뒤, 완전한 물리 섹터로서 디스크에 다시 기록된다. 버퍼는, 디스크에 다시 기록되기 이전에 판독된 뒤 수정되는 데이터를 유지하기 위해 보존된다.Murphy et al., US Pat. No. 5,813,025, entitled "System And Method For Providing Variable Sector-Format Operation To A Disk Access System," describes a pre-defined logical sector format and a variable physical sector format. Describes a system and method for handling I / O requests. When the read operation starts at the center of the physical sector, the data before the first logical sector is discarded, and user request data is stored in the user buffer. If the write operation is for a logical sector located in the center of the physical sector, the physical sector is read and modified in accordance with the write request for the logical sector and then written back to the disk as a complete physical sector. The buffer is preserved to hold data that is modified after being read before being written back to disk.
도 1은 종래 기술에 따른 논리 섹터와 물리 섹터 사이의 관계를 예시한다. 디스크 드라이브상의 데이터 스트림(data stream)은 각각 514 바이트인 물리 섹터1∼128로 편성(organized)되는데, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 갖고 있다.1 illustrates a relationship between a logical sector and a physical sector according to the prior art. The data stream on the disk drive is organized into physical sectors 1-128, which are 514 bytes each, which have logical sectors # 1, # 32, which are 2054 bytes each.
논리 섹터 #1∼#32는 연속적인 데이터 스트림으로서 프로세서로부터 디스크 드라이브에 기록된 것으로, 즉, 논리 섹터 사이에 갭(gap)이나 충전 문자(filler)가 없이 기록된 것이다. 이것은 기록 밀도를 개선하기 위해 이용되는 기법으로, 유효한 데이터(valid occurrence of data) 사이에 무효(invalid) 혹은 초과(excess) 데이터의 존재와 같은 요인에 의해 악영향을 받는다.Logical sectors # 1 through # 32 are serial data streams written from a processor to a disk drive, i.e., without gaps or fillers between logical sectors. This is a technique used to improve the recording density, which is adversely affected by factors such as the presence of invalid or excess data between valid occurrences of data.
4개의 물리 섹터는 총 2056 바이트의 길이이고, 각각의 2054 바이트의 논리 섹터를 수용하기 위해서는 4개의 물리 섹터가 요구됨을 유의하자. 예를 들어, 논리 섹터 #1이 물리 섹터 1-4에 존재한다. 2056 바이트 길이의 4개의 물리 섹터는 2054 바이트 길이의 논리 섹터보다 2 바이트 더 크므로, 물리 섹터 4의 끝(end)으로부터 2 바이트 이전에 논리 섹터 #1이 종료하고 논리 섹터 #2가 시작한다. 다음, 논리 섹터 #2는 물리 섹터 8의 끝보다 4 바이트 앞서 종료한다. 즉, 논리 섹터 #2는 물리 섹터 4의 바이트 512에서 시작해서 물리 섹터 8의 바이트 510에서 종료한다. 이러한 2 바이트 차이는 누적되어, 논리 섹터 #32는 물리 섹터 128의 종료 경계로부터 64 바이트(즉, 32 ×2 바이트) 이전에 종료한다.Note that four physical sectors are 2056 bytes in total, and four physical sectors are required to accommodate each 2054 byte logical sector. For example, logical sector # 1 is in physical sectors 1-4. Since four physical sectors of 2056 bytes in length are two bytes larger than a logical sector of 2054 bytes in length, logical sector # 1 ends and logical sector # 2 starts two bytes before the end of physical sector four. Logical sector # 2 then ends 4 bytes ahead of the end of physical sector 8. That is, logical sector # 2 starts at byte 512 of physical sector 4 and ends at byte 510 of physical sector 8. This two-byte difference accumulates so that logical sector # 32 ends 64 bytes (ie, 32 x 2 bytes) before the end boundary of physical sector 128.
32개의 논리 섹터의 데이터 스트림을 디스크 드라이브에 기록할 때, 프로세서는 논리 섹터 #32의 끝에 64 바이트의 패딩 데이터를 추가해야 한다. 기록 동작이 끝나면, 디스크 드라이브는 인터럽트(105)를 프로세서에게 발행한다. 인터럽트(105)를 수신한 후, 프로세서는 32개 논리 섹터로 이루어진 또다른 집합을 디스크 드라이브로 보낸다.When writing a data stream of 32 logical sectors to a disk drive, the processor must add 64 bytes of padding data to the end of logical sector # 32. When the write operation is finished, the disk drive issues an interrupt 105 to the processor. After receiving the interrupt 105, the processor sends another set of 32 logical sectors to the disk drive.
논리 및 물리 섹터간의 관계의 미세한 차이는 디스크 드라이브로부터 데이터를 판독할 때 더욱 더 명확해진다. 예를 들면, 프로세서가 논리 섹터 #2를 판독하고자 하는 것으로 가정하자. 프로세서는 논리 섹터 #2의 어드레스를 결정하고 이것이 물리 섹터 4의 바이트 512에서 시작하여 물리 섹터 8의 바이트 510에서 종료하는 것을 인지해야 한다. 디스크 드라이브는 오로지 물리 섹터의 단위로만 데이터를 전송할 수 있고 모든 데이터 전송은 물리 섹터의 경계에서 시작 및 종료해야 하므로, 디스크 드라이브는 물리 섹터 4∼8에 포함된 모든 데이터를 판독해야만 한다. 그 다음에, 프로세서는 초과 데이터(excess data)를 폐기해야 한다. 특히, 물리 섹터 4의 바이트 1∼511의 데이터와 물리 섹터 8의 바이트 513 및 514의 데이터를 폐기해야 한다. 논리 섹터가 물리 섹터와 정렬되지 않은 도 1에 도시된 것과 같은 시스템이 갖는 문제중 하나는 초과 데이터의 조작이 시스템의 총 처리량을 감소시킨다는 것이다.Minor differences in the relationship between logical and physical sectors become even more apparent when reading data from a disk drive. For example, assume that the processor wants to read logical sector # 2. The processor must determine the address of logical sector # 2 and recognize that it starts at byte 512 of physical sector 4 and ends at byte 510 of physical sector 8. Since the disk drive can only transfer data in units of physical sectors, and all data transfers must start and end at the boundary of the physical sector, the disk drive must read all data contained in the physical sectors 4-8. The processor must then discard the excess data. In particular, data of bytes 1 to 511 of physical sector 4 and data of bytes 513 and 514 of physical sector 8 should be discarded. One of the problems with a system such as that shown in FIG. 1 in which logical sectors are not aligned with physical sectors is that manipulation of excess data reduces the total throughput of the system.
논리 및 물리 섹터 경계의 불일치를 다루는 또 다른 종래 기법은 논리 섹터의 길이가 물리 섹터의 길이까지 확장되도록 각각의 논리 섹터를 패딩하는 것이다. 이런 조작이 비교적 간단하기는 해도, 통상적으로 소프트웨어로 구현되며, 이러한 구현은 이후에 논의되는 결과를 동반한다.Another conventional technique for dealing with inconsistencies in logical and physical sector boundaries is to pad each logical sector so that the length of the logical sector extends to the length of the physical sector. Although this operation is relatively simple, it is typically implemented in software, which implementation is accompanied by the results discussed later.
도 2는 소프트웨어를 이용해 논리 섹터를 패딩하는 것을 예시한다. 디스크 드라이브상의 데이터 스트림은 각각 514 바이트인 물리 섹터 1∼128로 편성되고, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 갖는다. 각각 2054 바이트인 논리 섹터를 수용하기 위해서는 총 2056 바이트 길이인 4개의 물리 섹터가 필요하다. 예를 들어, 논리 섹터 #1은 물리 섹터 1∼4에 존재한다. 2056 바이트 길이인 물리 섹터 1∼4는 2054 바이트 길이인 논리 섹터 #1보다 2 바이트 더 크므로, 논리 섹터 #1은 물리 섹터 4의 끝에서부터 2 바이트 앞서 종료한다. 이 2 바이트는 논리 섹터 #1의 끝에 소프트웨어에 의해 추가되는 패딩 데이터(205)로 채워진다. 논리 섹터 #2의 시작은 물리 섹터 5의 시작과 일치한다.2 illustrates padding of logical sectors using software. The data streams on the disk drive are organized into physical sectors 1 through 128, which are each 514 bytes, which have logical sectors # 1 through # 32, which are each 2054 bytes. To accommodate logical sectors that are 2054 bytes each, four physical sectors of 2056 bytes in total are needed. For example, logical sector # 1 exists in physical sectors 1-4. Since physical sectors 1 through 4 that are 2056 bytes long are two bytes larger than logical sector # 1 that is 2054 bytes long, logical sector # 1 ends two bytes from the end of physical sector 4. These two bytes are filled with padding data 205 added by software at the end of logical sector # 1. The start of logical sector # 2 coincides with the start of physical sector 5.
도 2에 표시된 데이터 스트림은 연속적인 데이터 스트림이 아니다. 기록 동작 동안, 프로세서는 논리 섹터 #1을 위해 2054 바이트의 데이터를 준비하고, 2 바이트의 패딩 데이터(205)를 추가한 뒤, 이 데이터를 디스크 드라이브로 보낸다. 기록 동작이 종료하면, 디스크 드라이브는 인터럽트(210)를 프로세서에게 발행한다. 인터럽트(210)를 수신한 후, 프로세서는 데이터(215)가 추가된 논리 섹터 #2를 디스크 드라이브로 보낸다. 이러한 기록 동작을 마치면, 디스크 드라이브는 프로세서에게 인터럽트(220)를 발행한다.The data stream shown in FIG. 2 is not a continuous data stream. During a write operation, the processor prepares 2054 bytes of data for logical sector # 1, adds two bytes of padding data 205, and sends this data to the disk drive. When the write operation ends, the disk drive issues an interrupt 210 to the processor. After receiving the interrupt 210, the processor sends logical sector # 2 to which the data 215 has been added to the disk drive. Upon completion of this write operation, the disk drive issues an interrupt 220 to the processor.
인터럽트 핸들러(interrupt handlers)는 다른 태스크로부터 프로세서를 전용(divert)하며, 종종 인터럽트를 처리하도록 준비하는데 상당한 오버헤드(overhead)를 갖는다. 도 2에 도시한 것처럼, 소프트웨어로 논리 섹터의 끝에 패딩 데이터를 추가하는 시스템이 갖는 문제중 하나는 기록 동작이 종료할 때마다 디스크 드라이브가 프로세서를 인터럽트한다는 것이다.Interrupt handlers divert the processor from other tasks and often have significant overhead in preparing to handle the interrupt. As shown in FIG. 2, one of the problems with systems that add padding data to the end of logical sectors in software is that the disk drive interrupts the processor every time a write operation ends.
따라서, 본 발명의 목적은 디스크 드라이브에 기록할 때 논리 섹터의 끝 경계를 물리 섹터의 끝 경계에 맞추기 위해 논리 섹터에 패딩 데이터를 추가하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.Accordingly, it is an object of the present invention to provide an improved system that adds padding data to a logical sector in order to align the end boundary of the logical sector with the end boundary of the physical sector when writing to the disk drive, but implements it in hardware.
본 발명의 다른 목적은 하드 드라이브로부터 데이터를 판독할 때 논리 섹터를 산출하기 위해 물리 섹터로부터 패딩 데이터를 제거하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.Another object of the present invention is to provide an improved system for removing padding data from a physical sector to produce a logical sector when reading data from a hard drive, but implementing it in hardware.
본 발명의 또 다른 목적은 가변 길이의 패딩 데이터를 추가 및 추출함으로써 논리 및 물리 섹터가 가변 길이를 갖도록 하되, 이것을 하드웨어로 구현하는 개선된 시스템을 제공하는 것이다.It is yet another object of the present invention to provide an improved system that adds and extracts variable length padding data so that logical and physical sectors have variable lengths, but implements them in hardware.
본 발명에 따르면, 소정의 회로가 논리 섹터 포맷과 물리 섹터 포맷 사이에 데이터의 변환을 관리한다. 패딩 모드에서, 이 회로는 논리 데이터 스트림(이 스트림의 논리 섹터는 소정의 논리 길이를 가짐)에 패딩값을 추가하여, 물리 데이터 스트림(이 스트림의 물리 섹터는 소정의 물리 길이를 가짐)을 만든다. 추출 모드에서는, 이 회로가 물리 데이터 스트림으로부터 논리 데이터 스트림을 추출한다.According to the present invention, a predetermined circuit manages the conversion of data between a logical sector format and a physical sector format. In the padding mode, this circuit adds padding values to the logical data stream (the logical sector of the stream has a predetermined logical length) to create a physical data stream (the physical sector of the stream has a predetermined physical length). . In the extraction mode, this circuit extracts the logical data stream from the physical data stream.
패딩 모드에서, 이 회로는 스위치, 논리 길이 카운터(logical length counter), 물리 길이 카운터(physical length counter), 콘트롤러를 포함한다. 스위치는 논리 데이터 스트림을 수신하는 입력과, 패딩값을 수신하는 입력과, 물리 데이터 스트림을 전송하는 출력을 갖는다. 논리 길이 카운터는 논리 데이터 스트림의 바이트를 계수하고, 물리 길이 카운터는 물리 데이터 스트림의 바이트를 계수한다. 콘트롤러는 논리 길이가 계수될 때까지 논리 데이터 스트림을 선택하도록 스위치를 제어하고, 물리 길이가 계수될 때까지는 패딩값을 선택하도록 스위치를 제어한다.In padding mode, this circuit includes a switch, a logical length counter, a physical length counter, and a controller. The switch has an input for receiving a logical data stream, an input for receiving a padding value, and an output for transmitting a physical data stream. The logical length counter counts bytes of the logical data stream, and the physical length counter counts bytes of the physical data stream. The controller controls the switch to select a logical data stream until the logical length is counted, and the switch to select a padding value until the physical length is counted.
추출 모드에서, 이 회로는 데이터 래치(data latch), 논리 길이 카운터, 물리 길이 카운터를 포함한다. 데이터 래치는 물리 데이터 스트림을 수신하는 입력과, 논리 데이터 스트림을 전송하는 출력을 갖는다. 논리 길이 카운터는 논리 데이터 스트림의 바이트를 계수하고, 물리 길이 카운터는 물리 데이터 스트림의 바이트를 계수한다. 콘트롤러는 논리 길이가 계수될 때까지 데이터 래치가 물리 데이터 스트림을 수신하도록 만들고, 물리 길이가 계수될 때까지는 데이터 래치를 동작 불능으로 만든다.In the extraction mode, the circuit includes a data latch, a logic length counter, and a physical length counter. The data latch has an input for receiving a physical data stream and an output for transmitting a logical data stream. The logical length counter counts bytes of the logical data stream, and the physical length counter counts bytes of the physical data stream. The controller causes the data latch to receive the physical data stream until the logical length is counted and disables the data latch until the physical length is counted.
도 1은 종래의 일치되지 않는 논리 및 물리 섹터를 예시하는 도면,1 illustrates a conventional mismatched logical and physical sector;
도 2는 종래 기술에 따라 소프트웨어로 논리 섹터를 패딩하는 것을 예시하는 도면,2 illustrates padding logical sectors in software according to the prior art;
도 3a 및 도 3b는 본 발명에 따라 하드웨어로 논리 섹터를 패딩하는 것을 보여주는 도면,3A and 3B illustrate padding logical sectors in hardware in accordance with the present invention;
도 4는 본 발명에 따라 논리 섹터에 대해 패딩값을 추가 및 추출하는 논리 회로의 개략도,4 is a schematic diagram of a logic circuit for adding and extracting padding values for a logical sector in accordance with the present invention;
도 5는 본 발명에 따라 논리 섹터에 패딩값을 추가하는 하드웨어에 의한 카운터의 이용을 도시하는 도면,5 illustrates the use of a counter by hardware to add padding values to logical sectors in accordance with the present invention;
도 6은 본 발명에 따라 물리 섹터로부터 논리 섹터를 추출하는 하드웨어에 의한 카운터의 이용을 도시하는 도면.6 illustrates the use of a counter by hardware to extract logical sectors from physical sectors in accordance with the present invention.
도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings
404 : 논리 섹터 길이 레지스터 406 : 물리 섹터 길이 레지스터404: logical sector length register 406: physical sector length register
408 : 섹터 레지스터/카운터 410 : 패드값 레지스터408: sector register / counter 410: pad value register
412 : 논리 길이 카운터 414 : 물리 길이 카운터412 logical length counter 414 physical length counter
426, 428, 430 : 0 검출기 424 : 제어 로직426, 428, 430: 0 detector 424: control logic
448, 458, 452, 460 : 데이터 래치 450 : 패드/데이터 다중화기448, 458, 452, 460: data latch 450: pad / data multiplexer
454 : 메모리 인터페이스454 memory interface
본 발명은 물리 섹터의 경계에 대해 논리 섹터의 경계를 정렬하기 위해 논리 섹터로/로부터 패딩 데이터를 추가/추출하는 회로를 개시한다. 먼저, 회로의 개념적인 동작이 도 3a 및 도 3b의 논의에서 설명된다. 그 뒤, 회로 그 자체에 대해서는 도 4 내지 도 6에 대한 논의에서 설명된다.The present invention discloses a circuit for adding / extracting padding data to / from a logical sector to align a logical sector's border with respect to a physical sector's border. First, the conceptual operation of the circuit is described in the discussion of FIGS. 3A and 3B. The circuit itself is then described in the discussion of FIGS. 4 to 6.
도 3a 및 도 3b는 본 발명에 따라 하드웨어로 논리 섹터를 패딩하는 것을 도시한다. 도 3a는 일반적인 경우를, 도 3b는 본 발명의 예시적인 적용을 도시한다.3A and 3B illustrate padding logical sectors in hardware in accordance with the present invention. 3A shows a general case and FIG. 3B shows an exemplary application of the invention.
도 3a에서, 디스크 드라이브상의 데이터 스트림은 물리 섹터 1∼32로 편성되고, 이것은 프로세서로부터 발행된 데이터의 논리 섹터 1∼32를 보유한다. 패딩 데이터는 각각의 논리 섹터의 끝에 추가되어, 다음 논리 섹터의 시작을 다음 물리 섹터의 시작에 맞춘다. 예를 들어, 패딩 데이터(310)가 논리 섹터 #1에 추가되어, 논리 섹터 #2의 시작을 물리 섹터 #2의 시작에 맞춘다. 패딩 데이터는 프로세서와 디스크 드라이브 사이에 동작적으로 위치된 회로에 의해 각각의 논리 섹터에 추가된다.In Fig. 3A, data streams on a disk drive are organized into physical sectors 1 to 32, which hold logical sectors 1 to 32 of data issued from the processor. Padding data is added at the end of each logical sector to align the beginning of the next logical sector with the beginning of the next physical sector. For example, padding data 310 is added to logical sector # 1 to align the beginning of logical sector # 2 with the beginning of physical sector # 2. Padding data is added to each logical sector by circuitry operatively located between the processor and the disk drive.
기록 동작 동안, 프로세서는 논리 섹터 1∼32를 연속 데이터 스트림으로서 준비한다. 프로세서는 이 데이터 스트림을 전술한 회로에 발행한다. 이 회로는 데이터 스트림을 디스크 드라이브로 전송하고, 각각의 논리 섹터의 끝에 패딩 데이터를 추가한다. 디스크 드라이브는 회로로부터 데이터 스트림을 수신하면 이 데이터 스트림을 기록한다. 모든 데이터 스트림을 기록한 후, 디스크 드라이브는 인터럽트(350)를 프로세서에게 발행한다. 그 이후에 프로세서는 회로에 대해 다른 데이터 스트림을 발행할 수도 있다.During the write operation, the processor prepares logical sectors 1 to 32 as a continuous data stream. The processor issues this data stream to the circuit described above. This circuit transfers the data stream to the disk drive and adds padding data to the end of each logical sector. The disk drive writes this data stream when it receives the data stream from the circuit. After writing all the data streams, the disk drive issues an interrupt 350 to the processor. Thereafter, the processor may issue another data stream for the circuit.
본 발명은 프로세서의 소프트웨어가 아닌 회로에 의해 구현되므로, 여러 번의 인터럽트를 처리하는 종래 기술의 문제가 다소 해결되어, 시스템 처리량이 향상된다.Since the present invention is implemented by circuitry rather than software of the processor, the problem of the prior art of handling multiple interrupts is somewhat solved, resulting in improved system throughput.
도 3b는 특정 응용에서 본 발명을 실행하는 것을 예시한다. 디스크 드라이브 상의 데이터 스트림은 각각 514 바이트인 물리 섹터 1∼128로 편성되고, 이것은 각각 2054 바이트인 논리 섹터 #1∼#32를 포함한다. 총 2056 바이트 길이인 4개의 물리 섹터는 각각 2054 바이트인 논리 섹터를 수용하는 것이 요구된다. 예를 들어, 논리 섹터 #1은 물리 섹터 1∼4에 존재한다. 2056 바이트 길이인 물리 섹터 1∼4는 2054 바이트 길이인 논리 섹터 #1보다 2 바이트 더 크므로, 논리 섹터 #1은 물리 섹터 4의 끝에서부터 2 바이트 앞서 종료한다. 본 발명에 따른 회로는 논리 섹터 #1의 끝에 2 바이트의 패딩 데이터를 추가하여, 논리 섹터 #2의 시작이 물리 섹터 #5의 시작과 일치하도록 만든다. 마찬가지로, 논리 섹터 #2는 물리 섹터 8의 끝에서부터 2 바이트 앞서 종료한다. 회로는 논리 섹터 #2의 끝에 2 바이트의 패딩 데이터를 추가하여, 논리 섹터 #3의 시작이 물리 섹터 #9의 시작과 일치하도록 만든다.3B illustrates implementing the invention in a particular application. The data streams on the disk drive are organized into physical sectors 1 through 128, which are 514 bytes each, and include logical sectors # 1 through # 32, which are each 2054 bytes. Four physical sectors totaling 2056 bytes in length are required to accommodate logical sectors of 2054 bytes each. For example, logical sector # 1 exists in physical sectors 1-4. Since physical sectors 1 through 4 that are 2056 bytes long are two bytes larger than logical sector # 1 that is 2054 bytes long, logical sector # 1 ends two bytes from the end of physical sector 4. The circuit according to the present invention adds two bytes of padding data to the end of logical sector # 1 so that the start of logical sector # 2 coincides with the start of physical sector # 5. Similarly, logical sector # 2 ends two bytes ahead from the end of physical sector eight. The circuit adds two bytes of padding data to the end of logical sector # 2 so that the start of logical sector # 3 coincides with the start of physical sector # 9.
기록 동작 동안, 프로세서는 논리 섹터 #1∼#32를 연속 데이터 스트림으로서 마련한다. 프로세서는 이 회로에 데이터 스트림을 발행한다. 회로는 이 데이터 스트림을 디스크 드라이브로 보내고, 각각의 논리 섹터의 끝에 2 바이트의 패딩 데이터를 추가한다. 디스크 드라이브는 회로로부터 수신되는 대로 데이터 스트림을 기록한다. 모든 데이터 스트림을 기록한 후, 디스크 드라이브는 프로세서에게 인터럽트(350a)를 발행한다. 프로세서는 그 이후에 다른 데이터 스트림을 회로로 보낼 수도 있다.During the write operation, the processor prepares logical sectors # 1 to # 32 as a continuous data stream. The processor issues a data stream to this circuit. The circuit sends this data stream to the disk drive and adds two bytes of padding data to the end of each logical sector. The disk drive writes the data stream as it is received from the circuit. After writing all the data streams, the disk drive issues an interrupt 350a to the processor. The processor may then send another data stream to the circuit.
판독 동작은 예시를 통해 가장 잘 설명된다. 프로세서가 논리 섹터 #2를 판독하고자 한다고 가정하자. 프로세서는 논리 섹터 #2의 어드레스를 판정하여, 이 논리 섹터가 물리 섹터 5에서 시작하여, 물리 섹터 8에서 종료한다는 것을 인식해야 한다. 디스크 드라이브는 오로지 물리 섹터의 단위로만 데이터를 전송할 수 있고, 모든 데이터 전송은 물리 섹터의 경계에서 시작하고 종료해야 하므로, 디스크 드라이브는 물리 섹터 4∼8까지 그 속에 포함된 모두를 판독해야 한다.The read operation is best described by way of example. Suppose the processor wants to read logical sector # 2. The processor must determine the address of logical sector # 2 and recognize that this logical sector starts at physical sector 5 and ends at physical sector 8. Since the disk drive can only transfer data in units of physical sectors, and all data transfers must start and end at the boundary of the physical sector, the disk drive must read everything contained in physical sectors 4-8.
디스크 드라이브는 물리 섹터 4∼8을 회로로 보낸다. 물리 섹터 8의 마지막 2 바이트의 데이터는 기록 동안 이 회로에 의해 추가된 패딩 데이터를 포함하고 있다. 판독 동작 동안에는, 회로가 이 2 바이트의 패딩 데이터를 폐기하여, 어떠한 초과 데이터도 갖지 않는 논리 섹터 #2를 프로세서에게 전송할 것이다.The disk drive sends physical sectors 4 through 8 to the circuit. The last two bytes of data in physical sector 8 contain padding data added by this circuit during writing. During a read operation, the circuit will discard this two bytes of padding data and send logical sector # 2 with no excess data to the processor.
도 4는 본 발명에 따라 논리 섹터에 대해 패딩값을 추가 및 추출하는 논리 회로(400)의 개략도이다. 이 회로의 주요 시스템 구성 요소는 제어 로직(424), 논리 길이 카운터(412), 물리 길이 카운터(414), 패드/데이터 다중화기(pad/data multiplexer)(450) 및 데이터 래치(458)이다. 또한, 논리 섹터 길이 레지스터(404), 물리 섹터 길이 레지스터(406), 섹터 레지스터/카운터(408), 패드값 레지스터(410), 0 검출기(zero detects)(426, 428, 430), 버퍼(446, 456, 462), 데이터 래치(448, 452, 460) 및 메모리 인터페이스(454)를 포함한다.4 is a schematic diagram of a logic circuit 400 for adding and extracting padding values for logical sectors in accordance with the present invention. The main system components of this circuit are control logic 424, logic length counter 412, physical length counter 414, pad / data multiplexer 450 and data latch 458. The logical sector length register 404, the physical sector length register 406, the sector register / counter 408, the pad value register 410, the zero detects 426, 428, 430, and the buffer 446 456, 462, data latches 448, 452, 460, and memory interface 454.
프로세서 인터페이스 버스(402)는 프로세서(도시 안됨)로부터 논리 섹터 길이 레지스터(404), 물리 섹터 길이 레지스터(406), 섹터 레지스터/카운터(408) 및 패드값 레지스터(410)로의 신호에 대한 경로를 제공한다. 논리 섹터 레지스터(404)의 출력은 논리 길이 카운터(412)의 입력에 접속된다. 물리 섹터 길이 레지스터(406)의 출력은 물리 길이 카운터(414)의 입력에 접속된다. 패드값 레지스터(410)의 출력은 패드/데이터 다중화기(450)의 입력에 접속된다.Processor interface bus 402 provides a path for signals from a processor (not shown) to logical sector length register 404, physical sector length register 406, sector register / counter 408, and pad value register 410. do. The output of the logical sector register 404 is connected to the input of the logical length counter 412. The output of the physical sector length register 406 is connected to the input of the physical length counter 414. The output of the pad value register 410 is connected to the input of the pad / data multiplexer 450.
논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)의 출력들은 0 검출기(zero detects)(426, 428, 430)의 입력에 각각 접속된다. 0 검출기(426, 428, 430)의 출력은 제어 로직(424)의 입력에 접속된다.The outputs of logical length counter 412, physical length counter 414, sector register / counter 408 are connected to the inputs of zero detects 426, 428, 430, respectively. The output of the zero detectors 426, 428, 430 is connected to the input of the control logic 424.
프로세서의 데이터 스트림은 버퍼(446)에 의해 수신되고, 데이터 래치(448)를 통해 패드/데이터 다중화기(450)에 접속된다. 데이터는 패드/데이터 다중화기(450)의 출력으로부터 데이터 래치(452)를 통해 메모리 인터페이스(454)로 진행하는데, 메모리 인터페이스는 데이터를 디스크 드라이브 버퍼(도시 안됨)로 보낸다.The data stream of the processor is received by the buffer 446 and is connected to the pad / data multiplexer 450 through the data latch 448. Data passes from the output of pad / data multiplexer 450 to data interface 454 through data latch 452, which sends data to a disk drive buffer (not shown).
디스크 드라이브 버퍼로부터의 데이터 스트림은 메모리 인터페이스(454)에 의해 수신되어, 데이터 래치(460)로 보내진다. 데이터 래치(460)의 출력은 데이터 래치(458)에 접속된다. 데이터 래치(458)의 출력은 버퍼(456)에 접속되고, 버퍼는 데이터를 프로세서로 보낸다.The data stream from the disk drive buffer is received by the memory interface 454 and sent to the data latch 460. The output of data latch 460 is connected to data latch 458. The output of data latch 458 is connected to buffer 456, which sends data to the processor.
제어 로직(424)은 동작 회로(400)를 제어하기 위한 몇 개의 신호를 발생한다. 인에이블 신호(enable signal)(416)는 섹터 레지스터/카운터(408)의 계수 기능을 동작 가능 상태로 만든다. 로드 신호(load signal)(418)는 논리 섹터 길이 레지스터(404)와 물리 섹터 길이 레지스터(406)로부터 각각 값들을 로딩하도록 논리 길이 카운터(412)와 물리 길이 카운터(414)를 제어한다. 인에이블 신호(420, 422)는 논리 길이 카운터(412)와 물리 길이 카운터(414)의 계수 기능을 각각 동작 가능 상태로 만든다. 메모리 제어 신호(444)는 메모리 인터페이스(454)의 동작을 지시한다. 인에이블 신호(432, 434, 440, 442)는 각각 데이터 래치(458, 448, 460, 452)로의 데이터 로딩을 제어한다. 선택 신호(436)는 데이터 래치(448) 또는 패드값 레지스터(410)로부터 데이터를 입력하기 위해 패드/데이터 다중화기(450)를 제어한다. 제어 로직(424)은 또한 데이터 대기 신호(409)를 발생시키기 위해버퍼(411)를 통해 전송되는 데이터 대기 신호(431)를 발생한다. 데이터 유효 신호(data validation signal)(438)는 버퍼(462)를 통해 전송된다.The control logic 424 generates several signals for controlling the operating circuit 400. An enable signal 416 makes the count function of the sector register / counter 408 operational. Load signal 418 controls logical length counter 412 and physical length counter 414 to load values from logical sector length register 404 and physical sector length register 406, respectively. Enable signals 420 and 422 render the counting functions of logical length counter 412 and physical length counter 414 respectively operable. The memory control signal 444 directs the operation of the memory interface 454. Enable signals 432, 434, 440, and 442 control data loading into data latches 458, 448, 460, and 452, respectively. Select signal 436 controls pad / data multiplexer 450 to input data from data latch 448 or pad value register 410. The control logic 424 also generates a data wait signal 431 that is transmitted through the buffer 411 to generate a data wait signal 409. The data validation signal 438 is transmitted through the buffer 462.
회로(400)는 패딩 모드(padding mode)와 추출 모드(extracting mode)를 갖는다. 패딩 모드에서, 이 회로(400)는 논리 섹터의 데이터 스트림(즉, 논리 데이터 스트림)을 수신하고, 각각의 논리 섹터의 끝에 패딩 데이터를 추가하여 물리 섹터의 데이터 스트림(즉, 물리 데이터 스트림)을 만든다. 추출 모드에서는, 회로(400)가 물리 섹터의 데이터 스트림을 수신하고, 패딩 데이터를 억제하여, 논리 섹터의 데이터 스트림을 추출한다. 이 두 가지 모드의 각각의 동작에 대한 세부 내용은 이하에 설명된다.The circuit 400 has a padding mode and an extracting mode. In padding mode, this circuit 400 receives data streams of logical sectors (i.e., logical data streams) and adds padding data to the end of each logical sector to decode the data streams of physical sectors (i.e., physical data streams). Make. In the extraction mode, the circuit 400 receives the data stream of the physical sector, suppresses the padding data, and extracts the data stream of the logical sector. Details of the operation of each of these two modes are described below.
어떤 시스템 구성 요소의 기능은 패딩 모드의 동작과도 관련이 있고 추출 모드의 동작과도 관련 있다. 각 모드의 동작을 검사하기 전에 이런 시스템 구성 요소의 동작을 먼저 논의한다.The function of some system components is related to the operation of the padding mode and also to the operation of the extraction mode. Before examining the operation of each mode, the behavior of these system components is discussed first.
논리 섹터는 사전 정의된 개수의 바이트의 논리 길이를 갖고, 물리 섹터는 사전 정의된 개수의 바이트의 물리 길이를 갖는다. 논리 길이 및 물리 길이는 프로세서에 의해 프로그램 가능하다. 프로세서 인터페이스 버스(402)를 통해, 프로세서는 논리 길이를 논리 섹터 길이 레지스터(404)에 로딩하고, 물리 길이를 물리 섹터 길이 레지스터(406)에 로딩한다. 프로세서는 섹터의 개수를 섹터 레지스터/카운터(408)에 로딩함으로써 디스크 드라이브로/로부터 전송될 섹터의 개수를 지정한다. 또한 프로세서는 패딩값을 패드값 레지스터(410)에 로딩함으로써 패딩 데이터에 대한 값을 지정한다.The logical sector has a logical length of a predefined number of bytes, and the physical sector has a physical length of a predefined number of bytes. Logical length and physical length are programmable by the processor. Through the processor interface bus 402, the processor loads the logical length into the logical sector length register 404 and the physical length into the physical sector length register 406. The processor specifies the number of sectors to be transferred to / from the disk drive by loading the number of sectors into the sector register / counter 408. The processor also specifies a value for the padding data by loading the padding value into the pad value register 410.
어떠한 동작 모드에서든, 각각의 데이터 섹터를 전송하기 위해서는, 제어 로직(424)이 논리 길이 카운터(412)를 제어하여 논리 섹터 길이 레지스터(404)로부터 논리 길이를 로딩하고, 물리 길이 카운터(414)를 제어하여 물리 섹터 길이 레지스터(406)로부터 물리 길이를 로딩한다. 데이터 전송 동안에 제어 로직(424)은 논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)를 동작 가능 상태로 만든다. 논리 길이 카운터(412)는 1 바이트의 데이터가 전송될 때마다 계수를 1씩 줄여나가서, 논리 길이가 모두 계수되면 0에 도달한다. 물리 길이 카운터(414)는 1 바이트의 데이터가 전송될 때마다 계수를 1씩 줄여나가, 물리 길이가 모두 계수되면 0에 도달한다. 마찬가지로, 섹터 레지스터/카운터(408)도 각 섹터의 데이터가 전송될 때마다 계수를 1씩 줄여나가 모든 섹터가 전송 완료되면 0에 도달한다. 0 검출기(426, 428, 430)는 논리 길이 카운터(412), 물리 길이 카운터(414), 섹터 레지스터/카운터(408)의 계수를 각각 감시하여, 각각의 카운터의 계수가 0에 도달하면, 이 사실을 제어 로직(424)에게 통지한다.In any mode of operation, in order to transfer each sector of data, control logic 424 controls logical length counter 412 to load the logical length from logical sector length register 404 and the physical length counter 414. Control to load the physical length from the physical sector length register 406. The control logic 424 makes the logic length counter 412, the physical length counter 414, and the sector register / counter 408 operational during data transfer. The logical length counter 412 decrements the coefficient by one each time one byte of data is transmitted, and reaches zero when the logical length is all counted. The physical length counter 414 decrements the coefficient by one each time one byte of data is transmitted, and reaches zero when the physical length is all counted. Similarly, the sector register / counter 408 decrements the coefficient by one each time data in each sector is transferred and reaches zero when all sectors have been transferred. The zero detectors 426, 428, 430 monitor the coefficients of the logical length counter 412, the physical length counter 414, and the sector register / counter 408, respectively. Notify the control logic 424 of the fact.
제어 로직(424)은 물리 길이 카운터(414)와 섹터 레지스터/카운터(408)의 상태를 각각의 0 검출기(428, 430)를 통해 간접적으로 감시함으로써, 다중 섹터의 전송을 관리한다. 물리 길이 카운터(414)가 0에 도달하면, 하나의 섹터가 전부 전송된 것이다. 그 응답으로, 제어 로직(424)은 인에이블 신호(416)를 통해 섹터 레지스터/카운터(408)의 계수를 1 감소시킨다. 섹터 레지스터/카운터(408)가 아직 0으로 감소되지 않았다면, 더 많은 섹터들이 전송되어야 하며, 로드 신호(418)를 통해 제어 로직(424)은 논리 길이 섹터 레지스터(404)로부터 논리 길이 카운터(412)를 재로딩(reload)하고, 물리 섹터 레지스터(406)로부터 물리 길이 카운터(414)를 재로딩한다.The control logic 424 manages the transmission of multiple sectors by indirectly monitoring the state of the physical length counter 414 and the sector register / counter 408 through their respective zero detectors 428, 430. When the physical length counter 414 reaches zero, one sector has been completely transmitted. In response, control logic 424 decrements the coefficient of sector register / counter 408 by one through enable signal 416. If the sector register / counter 408 has not yet been reduced to zero, more sectors have to be sent, and the load signal 418 allows the control logic 424 to transfer the logical length counter 412 from the logical length sector register 404. Reload and reload the physical length counter 414 from the physical sector register 406.
패딩 모드에서, 제어 로직(424)은 프로세서로부터 논리 데이터 스트림의 전송을 제어하기 위해, 데이터 대기 신호(431)를 관리한다. 이것은 버퍼(411)를 통해 접속되어 데이터 대기 신호(409)를 발생한다. 처음에는 데이터 대기 신호(431)가 설정되지 않는다. 그러므로, 프로세서가 논리 데이터 스트림을 버퍼(446)로 전송하는 것이 허가되고, 데이터는 데이터 래치(448)에 래치된다. 논리 데이터 스트림은 데이터 래치(448)로부터 패드/데이터 다중화기(450)의 입력으로 전송된다.In padding mode, control logic 424 manages data wait signal 431 to control the transmission of the logical data stream from the processor. It is connected through a buffer 411 to generate a data wait signal 409. Initially, the data wait signal 431 is not set. Therefore, the processor is allowed to send the logical data stream to the buffer 446, and the data is latched in the data latch 448. The logical data stream is sent from the data latch 448 to the input of the pad / data multiplexer 450.
제어 로직(424)은 0 검출기(426)를 통해 논리 길이 카운터(412)를 간접적으로 감시하고, 논리 길이 카운터(412)가 0이 될 때까지 데이터 래치(448)로부터의 논리 데이터 스트림을 선택하도록 선택 신호(436)를 통해 패드/데이터 다중화기(450)를 제어한다. 그 이후, 제어 로직(424)은 0 검출기(428)를 통해 물리 길이 카운터(414)를 간접적으로 감시한다. 제어 로직(424)은 데이터 대기 신호(431)를 발행함으로써 프로세서로부터의 데이터 전송을 금지하고, 선택 신호(436)를 통해 패드/데이터 다중화기(450)를 제어함으로써 이 패드/데이터 다중화기가 물리 길이 카운터(414)가 0에 도달할 때까지 패드값 레지스터(410)로부터 패드값을 선택하도록 만든다. 패드/데이터 다중화기(450)의 출력은 물리 데이터 스트림인데, 다시 말해서, 논리 섹터에 패딩 데이터가 부가되어 이루어진 데이터 스트림으로서, 논리섹터와 그의 패딩 데이터가 조합된 길이는 물리 섹터의 길이이기도 하다.Control logic 424 indirectly monitors logical length counter 412 via zero detector 426 and selects a logical data stream from data latch 448 until logical length counter 412 becomes zero. The pad / data multiplexer 450 is controlled via the selection signal 436. Thereafter, the control logic 424 indirectly monitors the physical length counter 414 via the zero detector 428. Control logic 424 prohibits data transfer from the processor by issuing a data wait signal 431 and controlling pad / data multiplexer 450 via select signal 436 so that the pad / data multiplexer has a physical length. And select pad value from pad value register 410 until counter 414 reaches zero. The output of the pad / data multiplexer 450 is a physical data stream, that is, a data stream in which padding data is added to a logical sector, and the length of the logical sector and its padding data combined is also the length of the physical sector.
패드/데이터 다중화기(450)의 물리 데이터 스트림 출력은 데이터 래치(452)로 송출되고, 그 이후에 메모리 인터페이스(454)로 송출된다. 메모리 제어 신호(444)를 통해 제어 로직(424)은 메모리 인터페이스(454)에게 물리 데이터 스트림을 디스크 드라이브 버퍼에게 보낼 것을 지시한다.The physical data stream output of the pad / data multiplexer 450 is sent to the data latch 452 and then to the memory interface 454. Via the memory control signal 444, the control logic 424 instructs the memory interface 454 to send the physical data stream to the disk drive buffer.
추출 모드에서는, 물리 데이터 스트림이 디스크 드라이브 버퍼로부터 메모리 인터페이스(454)를 통해 수신되어, 데이터 래치(460)에 일시 저장된다. 다음, 물리 데이터 스트림은 데이터 래치(460)로부터 데이터 래치(458)로 송출된다.In the extraction mode, the physical data stream is received from the disk drive buffer through the memory interface 454 and temporarily stored in the data latch 460. The physical data stream is then sent from data latch 460 to data latch 458.
제어 로직(424)은 0 검출기(426)를 통해 논리 길이 카운터(412)를 간접적으로 감시하고, 논리 길이 카운터(412)가 0이 될 때까지 인에이블 신호(432)를 통해 데이터 래치(460)로부터 데이터를 입력하도록 데이터 래치(458)를 제어한다. 그 다음에, 제어 로직(424)은 0 검출기(428)를 통해 간접적으로 물리 길이 카운터(414)를 감시하고, 선택 신호(436)를 통해 물리 길이 카운터(414)가 0에 도달할 때까지 데이터 래치(458)를 동작 불능 상태로 만든다. 데이터 래치(458)의 출력은 논리 데이터 스트림인데, 다시 말해서, 물리 섹터가 갖고 있는 패딩값을 억제시킨 이 물리 섹터로부터 추출한 논리 섹터로 이루어진 데이터 스트림이다.The control logic 424 indirectly monitors the logic length counter 412 via the zero detector 426, and through the enable signal 432 through the enable signal 432 until the logic length counter 412 becomes zero. Data latch 458 is controlled to input data from. The control logic 424 then indirectly monitors the physical length counter 414 via the zero detector 428 and the data until the physical length counter 414 reaches zero via the selection signal 436. Make the latch 458 inoperable. The output of the data latch 458 is a logical data stream, that is, a data stream composed of logical sectors extracted from this physical sector in which the padding value held by the physical sector is suppressed.
데이터 래치(458)의 논리 데이터 스트림 출력은 버퍼(456)를 통해 프로세서로 송출된다. 제어 로직(424)은 데이터 래치(458)의 출력이 유효한 논리 데이터 스트림을 전송하는 시간 동안에 데이터 유효 신호(438)를 발생한다. 데이터 유효 신호(438)는 버퍼(462)를 통해 접속되어 전송 데이터 유효 신호(461)로서 프로세서에게 전송된다.The logical data stream output of the data latch 458 is sent to the processor through the buffer 456. Control logic 424 generates data valid signal 438 during the time that the output of data latch 458 transmits a valid logical data stream. The data valid signal 438 is connected through a buffer 462 and transmitted to the processor as a transmit data valid signal 461.
도 5는 논리 섹터에 패딩값을 추가하는 하드웨어 카운터의 이용을 도시한다. 이것은 2054 바이트 길이의 논리 섹터가 프로세서로부터 수신되고 2056 바이트 길이의 물리 섹터가 디스크 드라이브로 전송되는 경우를 도시한다. 논리 길이 카운터(도 4의 도면 부호(412) 참조)와 물리 길이 카운터(도 4의 도면 부호(414) 참조)는 각각 전송중인 데이터 스트림의 각 바이트를 1(one count)로 간주하여 0이 될 때까지 거꾸로 계수(counting down)한다. 단계(505)에서, 논리 길이 카운터(412)는 0이 되어, 하나의 논리 섹터를 계수 완료했음을 나타낸다. 물리 길이 카운터(414)는 카운터의 계수가 0이 되는 단계(515)가 될 때까지 계수를 계속한다. 2 바이트의 패딩 데이터가 데이터 스트림에 추가되어 있음을 유의하자.5 illustrates the use of a hardware counter to add padding values to logical sectors. This illustrates the case where a 2054 byte long logical sector is received from the processor and a 2056 byte long physical sector is transferred to the disk drive. The logical length counter (see 412 in FIG. 4) and the physical length counter (see 414 in FIG. 4) will each be zero (one count) for each byte of the data stream being transmitted. Counting down until In step 505, the logical length counter 412 goes to zero, indicating that one logical sector has been counted. The physical length counter 414 continues to count until step 515, where the counter's count is zero. Note that two bytes of padding data have been added to the data stream.
단계(520)에서, 섹터 레지스터/카운터(도 4의 도면 부호(408) 참조)는 그 값이 1 감소하고, 논리 길이 카운터(412)와 물리 길이 카운터(414)는 다시 로딩된 뒤, 후속 섹터가 전송되는 동안 다시 거꾸로 계수될 수 있게 된다. 당업자라면, 카운터가 최종적으로 0의 값으로 감소하므로, 카운터에는 실제 계수될 바이트 수보다 1이 작은 값이 로딩됨을 이해할 것이다.In step 520, the sector register / counter (see 408 in FIG. 4) decreases by one, and the logical length counter 412 and the physical length counter 414 are reloaded, and then subsequent sectors. Can be counted upside down again during transmission. Those skilled in the art will appreciate that the counter is loaded with a value less than one, which is actually less than the number of bytes to be counted since the counter finally decreases to a value of zero.
도 6은 본 발명에 따른 하드웨어로 물리 섹터로부터 논리 섹터를 추출하기 위한 카운터의 이용을 도시한다. 2056 바이트 길이의 물리 섹터가 디스크 드라이브로부터 수신되어, 2054 바이트 길이의 논리 섹터가 프로세서로 전송된다. 논리길이 카운터(도 4의 도면 부호(412) 참조)와 물리 길이 카운터(도 4의 도면 부호(414) 참조)는 각각 전송중인 데이터 스트림의 각 바이트를 1(one count)로 간주하여 0이 될 때까지 거꾸로 센다. 전송 데이터 유효 신호(도 4의 도면부호(461) 참조)는 유효한 데이터가 프로세서로 전송되는 동안에는 논리 "1"이다. 단계(605)에서, 논리 길이 카운터(412)는 0에 도달하여, 하나의 논리 섹터가 전송되었음을 나타낸다. 단계(610)에서, 데이터 스트림의 패딩값이 디스크 드라이브로부터 수신되는 동안 전송 데이터 유효 신호(461)는 논리 "0"으로 변한다. 물리 길이 카운터(414)는 그 값이 0이 되는 단계(615)까지 계속해서 거꾸로 계수한다.6 illustrates the use of a counter to extract logical sectors from physical sectors in hardware in accordance with the present invention. A 2056 byte long physical sector is received from the disk drive, and a 2054 byte long logical sector is sent to the processor. The logical length counter (see 412 in FIG. 4) and the physical length counter (see 414 in FIG. 4) are each zero, counting each byte of the data stream being transmitted as one (one count). Count upside down. The transmission data valid signal (see 461 of FIG. 4) is a logic "1" while valid data is being sent to the processor. In step 605, the logical length counter 412 reaches zero, indicating that one logical sector has been sent. In step 610, the transmit data valid signal 461 changes to a logic " 0 " while the padding value of the data stream is received from the disk drive. The physical length counter 414 continues counting backwards until step 615 where the value becomes zero.
단계(620)에서, 섹터 레지스터/카운터(도 4의 도면 부호(408) 참조)는 그 값이 1 감소하고, 논리 길이 카운터(412)와 물리 길이 카운터(414)는 다시 로딩된 뒤, 후속 섹터가 전송되는 동안 다시 거꾸로 계수될 수 있게 된다. 전송 유효 데이터 신호(461)는 다시 한번 더 유효한 데이터가 전송되는 것을 나타내기 위해 논리 "1"로 변경된다.In step 620, the sector register / counter (see 408 in FIG. 4) decreases by one, the logical length counter 412 and the physical length counter 414 are reloaded, and then the subsequent sectors. Can be counted upside down again during transmission. The transmission valid data signal 461 is once again changed to a logical " 1 " to indicate that valid data is to be transmitted.
전술한 설명은 단지 본 발명을 예시한 것임을 이해해야 한다. 본 발명을 벗어나지 않고도 당업자에 의해 다양한 대체나 수정이 유도될 수 있다. 예를 들면, 데이터 래치나 버퍼가 회로를 통해 전송되는 데이터의 순서를 변경하도록 구성될 수도 있고, 여러 가지 제어 신호의 타이밍 관계가 수정될 수도 있다. 또한, 전송중인 데이터 스트림이 바이트가 아닌 다른 데이터 단위일 수도 있고, 데이터 전송선이 직렬 링크나 병렬 버스로 구성될 수도 있다. 따라서, 본 발명은 첨부된 특허청구범위의 범주에 속하는 이러한 대체, 수정 및 변형을 모두 포괄하도록 의도된다.It is to be understood that the foregoing description is only illustrative of the invention. Various substitutions or modifications may be made by those skilled in the art without departing from the invention. For example, data latches or buffers may be configured to alter the order of data transmitted through the circuit, and the timing relationship of various control signals may be modified. In addition, the data stream being transmitted may be a data unit other than bytes, and the data transmission line may be configured as a serial link or a parallel bus. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the scope of the appended claims.
따라서, 본 발명에 따르면, 물리 섹터의 경계에 대해 논리 섹터의 경계를 정렬하기 위해 논리 섹터에 대해 패딩 데이터를 추가/추출하되, 이것을 하드웨어로 구현함으로써, 기록 밀도(recording density)와 처리량(throughput)을 개선할 수 있게 된다.Therefore, according to the present invention, padding data is added / extracted to the logical sector to align the boundary of the logical sector with the boundary of the physical sector, and implemented in hardware, thereby recording density and throughput. It will be possible to improve.
Claims (21)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/340,376 | 1999-06-28 | ||
US09/340,376 US6191712B1 (en) | 1999-06-28 | 1999-06-28 | Circuit for aligning logical sectors with physical sectors in a disk storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010007418A KR20010007418A (en) | 2001-01-26 |
KR100386348B1 true KR100386348B1 (en) | 2003-06-02 |
Family
ID=23333102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0033403A KR100386348B1 (en) | 1999-06-28 | 2000-06-17 | A circuit for aligning logical sectors with physical sectors in a disk storage system |
Country Status (4)
Country | Link |
---|---|
US (1) | US6191712B1 (en) |
JP (1) | JP3484144B2 (en) |
KR (1) | KR100386348B1 (en) |
SG (1) | SG85190A1 (en) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4202658B2 (en) * | 2002-02-22 | 2008-12-24 | 富士通マイクロエレクトロニクス株式会社 | Data writing apparatus and DVD format data generation method |
US8321650B2 (en) * | 2003-01-13 | 2012-11-27 | Emulex Design & Manufacturing Corporation | Alignment-unit-based virtual formatting methods and devices employing the methods |
US7634614B2 (en) * | 2003-01-13 | 2009-12-15 | Sierra Logic | Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves and that support virtual disk formatting |
US8289984B2 (en) * | 2003-01-13 | 2012-10-16 | Emlilex Design & Manufacturing Corporation | Allocation-unit-based virtual formatting methods and devices employing allocation-unit-based virtual formatting methods |
US7007114B1 (en) * | 2003-01-31 | 2006-02-28 | Qlogic Corporation | System and method for padding data blocks and/or removing padding from data blocks in storage controllers |
KR100860985B1 (en) * | 2003-05-23 | 2008-09-30 | 삼성전자주식회사 | Method for recording/reproducing data on a disc using padding information |
US20050086249A1 (en) * | 2003-10-16 | 2005-04-21 | International Business Machines Corporation | Method for logical volume conversions |
KR100716972B1 (en) * | 2004-02-19 | 2007-05-10 | 삼성전자주식회사 | Recording/reproducing method |
US7183610B2 (en) * | 2004-04-30 | 2007-02-27 | Siliconix Incorporated | Super trench MOSFET including buried source electrode and method of fabricating the same |
US7231545B2 (en) * | 2004-08-05 | 2007-06-12 | International Business Machines Corporation | Apparatus and method to convert data from a first sector format to a second sector format |
US7277986B2 (en) * | 2005-03-30 | 2007-10-02 | Emc Corporation | Sector-edge cache |
US7986480B2 (en) * | 2005-11-03 | 2011-07-26 | Hitachi Global Storage Technologies Netherlands B.V. | Micro-journaling of data on a storage device |
US7725666B2 (en) * | 2005-11-03 | 2010-05-25 | Hitachi Global Storage Technologies Netherlands B.V. | Micro-journaling of data on a storage device |
US7539924B1 (en) | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
KR100781517B1 (en) | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | Mapping table managing apparatus and method for nonvolatile memory |
JP2008159109A (en) * | 2006-12-21 | 2008-07-10 | Matsushita Electric Ind Co Ltd | Data transfer unit |
KR100860990B1 (en) * | 2007-01-22 | 2008-09-30 | 삼성전자주식회사 | Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof |
KR100860998B1 (en) * | 2007-11-15 | 2008-09-30 | 삼성전자주식회사 | Method for recording/reproducing data on a disc using padding information |
KR100860999B1 (en) * | 2007-11-15 | 2008-09-30 | 삼성전자주식회사 | Method for recording/reproducing data on a disc using padding information |
KR100860997B1 (en) * | 2007-11-15 | 2008-09-30 | 삼성전자주식회사 | Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof |
KR100860996B1 (en) * | 2007-11-15 | 2008-09-30 | 삼성전자주식회사 | Apparatus for recording/reproducing data on a disc using padding information and information storage medium thereof |
JP4977583B2 (en) * | 2007-11-22 | 2012-07-18 | 株式会社日立製作所 | Storage control device and control method of storage control device |
US9032154B2 (en) * | 2007-12-13 | 2015-05-12 | Sandisk Technologies Inc. | Integration of secure data transfer applications for generic IO devices |
US9106592B1 (en) | 2008-05-18 | 2015-08-11 | Western Digital Technologies, Inc. | Controller and method for controlling a buffered data transfer device |
US8006027B1 (en) | 2008-09-11 | 2011-08-23 | Western Digital Technologies, Inc. | Method of staging small writes on a large sector disk drive |
US8392687B2 (en) * | 2009-01-21 | 2013-03-05 | Micron Technology, Inc. | Solid state memory formatting |
US8046533B2 (en) * | 2009-03-10 | 2011-10-25 | Emulex Design & Manufacturing Corporation | System and method for sector remapping |
US8255661B2 (en) * | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) * | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8392689B1 (en) | 2010-05-24 | 2013-03-05 | Western Digital Technologies, Inc. | Address optimized buffer transfer requests |
US8661193B1 (en) | 2010-10-29 | 2014-02-25 | Western Digital Technologies, Inc. | Disk drive with partial sector management |
US8578100B1 (en) | 2010-11-08 | 2013-11-05 | Western Digital Technologies, Inc. | Disk drive flushing write data in response to computed flush time |
US8990493B1 (en) | 2011-06-30 | 2015-03-24 | Western Digital Technologies, Inc. | Method and apparatus for performing force unit access writes on a disk |
US8654619B1 (en) | 2011-09-29 | 2014-02-18 | Western Digital Technologies, Inc. | Method and apparatus for operating a disk drive |
US8671250B2 (en) | 2011-12-15 | 2014-03-11 | Western Digital Technologies, Inc. | Data storage device generating redundancy for data path protection of a parity sector |
US9063838B1 (en) | 2012-01-23 | 2015-06-23 | Western Digital Technologies, Inc. | Data storage device shifting data chunks of alignment zone relative to sector boundaries |
US8996839B1 (en) | 2012-01-23 | 2015-03-31 | Western Digital Technologies, Inc. | Data storage device aligning partition to boundary of sector when partition offset correlates with offset of write commands |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5813025A (en) | 1994-08-10 | 1998-09-22 | Unisys Corporation | System and method for providing variable sector-format operation to a disk access system |
US5596458A (en) | 1994-12-19 | 1997-01-21 | Integral Peripherals, Inc. | Variable zone layout for information storage disk drive |
US5671439A (en) | 1995-01-10 | 1997-09-23 | Micron Electronics, Inc. | Multi-drive virtual mass storage device and method of operating same |
US5765201A (en) | 1995-07-31 | 1998-06-09 | International Business Machines Corporation | Changing page size in storage media of computer system |
US5802584A (en) | 1995-09-01 | 1998-09-01 | Adaptec, Inc. | Hardware alignment in a headerless disk drive architecture |
US6119201A (en) * | 1997-02-19 | 2000-09-12 | International Business Machines Corporation | Disk under-run protection using formatted padding sectors |
US6092130A (en) * | 1997-02-28 | 2000-07-18 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for data padding input data and input significance information which are not synchronized |
-
1999
- 1999-06-28 US US09/340,376 patent/US6191712B1/en not_active Expired - Fee Related
-
2000
- 2000-06-12 SG SG200003270A patent/SG85190A1/en unknown
- 2000-06-17 KR KR10-2000-0033403A patent/KR100386348B1/en not_active IP Right Cessation
- 2000-06-26 JP JP2000190398A patent/JP3484144B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3484144B2 (en) | 2004-01-06 |
US6191712B1 (en) | 2001-02-20 |
KR20010007418A (en) | 2001-01-26 |
JP2001051802A (en) | 2001-02-23 |
SG85190A1 (en) | 2001-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100386348B1 (en) | A circuit for aligning logical sectors with physical sectors in a disk storage system | |
KR101243005B1 (en) | Processing a variable length device command word at a control unit in an i/o processing system | |
KR100564665B1 (en) | Method and apparatus for using crc for data integrity in on-chip memory | |
US6449666B2 (en) | One retrieval channel in a data controller having staging registers and a next pointer register and programming a context of a direct memory access block | |
US7240139B2 (en) | Disk array control device with two different internal connection systems | |
US5644787A (en) | Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter | |
KR101174997B1 (en) | Providing indirect data addressing in an input/output processing system where the indirect data addressing list is non-contiguous | |
US5797033A (en) | Direct memory access for storing and retrieving data based on packet size | |
EP0164550B1 (en) | I/o controller for multiple disparate serial memories with a cache | |
KR20020064142A (en) | Disc drive for achieving improved audio and visual data transfer | |
US20040123026A1 (en) | Control method for storage device controller system, and storage device controller system | |
JP3895610B2 (en) | Image forming apparatus and image forming method | |
US5813024A (en) | Disk control method for use with a data storage apparatus having multiple disks | |
US20030172229A1 (en) | Systems and methods for detecting and compensating for runt block data transfers | |
KR20060017816A (en) | Method and device for transferring data between a main memory and a storage device | |
JPH01306917A (en) | Memory control method and apparatus | |
JPS5832417B2 (en) | Data transfer control method | |
US7596639B2 (en) | Skip mask table automated context generation | |
JP2006302343A (en) | Information recording and reproducing device | |
US6349348B1 (en) | Data transfer method and apparatus | |
KR100638378B1 (en) | Systems and Methods for a Disk Controller Memory Architecture | |
JP2580998B2 (en) | Storage controller | |
JPH10177764A (en) | Optical disk recording device | |
JPH0430057B2 (en) | ||
JPH1011223A (en) | Magnetic disk controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20060417 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |