KR20080009002A - 가상 디스크 드라이브 아키텍쳐 - Google Patents

가상 디스크 드라이브 아키텍쳐 Download PDF

Info

Publication number
KR20080009002A
KR20080009002A KR1020070072779A KR20070072779A KR20080009002A KR 20080009002 A KR20080009002 A KR 20080009002A KR 1020070072779 A KR1020070072779 A KR 1020070072779A KR 20070072779 A KR20070072779 A KR 20070072779A KR 20080009002 A KR20080009002 A KR 20080009002A
Authority
KR
South Korea
Prior art keywords
hdd
module
read channel
servo position
controller
Prior art date
Application number
KR1020070072779A
Other languages
English (en)
Other versions
KR100913619B1 (ko
Inventor
세리언 페티키안
제이 씨 프로아노
마크 고럴
크리스티안 알. 위허
프레드릭 난코 스탈
Original Assignee
브로드콤 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브로드콤 코포레이션 filed Critical 브로드콤 코포레이션
Publication of KR20080009002A publication Critical patent/KR20080009002A/ko
Application granted granted Critical
Publication of KR100913619B1 publication Critical patent/KR100913619B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/04Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
    • G11B19/048Testing of disk drives, e.g. to detect defects or prevent sudden failure
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R33/00Arrangements or instruments for measuring magnetic variables
    • G01R33/12Measuring magnetic properties of articles or specimens of solids or fluids
    • G01R33/1207Testing individual magnetic storage devices, e.g. records carriers or digital storage elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1281Servo information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Digital Magnetic Recording (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

가상 디스크 드라이브 아키텍쳐가 개시된다. 가상 설계 시스템을 이용하여 하드 디스크 드라이브들(HDDs)을 포함하는 메모리 저장 장치들의 설계, 개발 및 테스트를 가능하게 하는 새로운 시도가 제공된다. 가상 디스크 드라이브 아키텍쳐는 완전한 HDD 시스템의 구현 및 에뮬레이션을 가능하게 한다. HDD 시스템의 모든 부분들(예를 들어, 읽기 채널 및 컨트롤러 기능들을 포함하여)이 설계자로 하여금 시스템 내의 특정 부분들을 개발하고 테스트할 수 있도록 포함되고 구현된다. 몇몇 실시예들에 있어서, 하나 또는 그 이상의 FPGA들이 하드 드라이브 컨트롤러를 전부 디지탈 구현 방식으로 구현할 수 있도록 채택된다. 회로 보드들 및 FPGA들을 포함하는 다양한 조합들이 전체 HDD 시스템을 에뮬레이션하도록 채택될 수 있다. 다른 실시예들에 있어서, 상기 디스크 드라이브 아키텍쳐 내에서 실제 칩들의 테스트을 허용하도록 하나 이상의 소켓들 및 적절한 인터페이싱이 포함된다.

Description

가상 디스크 드라이브 아키텍쳐{VIRTUAL DISK DRIVE ARCHITECTURE}
본 발명은 일반적으로 하드 디스크 드라이브(HDD)에 관한 것으로, 더욱 상세하게는 그러한 HDD의 설계에서 채택되는 장치 및 방법에 관한 것이다.
알려진 바와 같이, 자기 디스크 드라이브들과 같은 다양한 메모리 저장 장치들(예컨대, 디스크 드라이브들 또는 HDD들)은 직접, 또는 SAN(storage area network)이나 NAS(network attached storage)와 같은 네트워크를 통해서, 호스트 장치를 위해 데이터를 저장한다. 전형적인 호스트 장치들은 데스크탑 또는 랩탑 컴퓨터와 같은 독립형 컴퓨터, 서버와 같은 기업 저장 장치들(enterprise storage devices), RAID(Redundant array of independent disks) 어레이들과 같은 저장 어레이들, 저장 라우터들, 저장 스위치들과 저장 디렉터들(directors), 및 비디오 게임 시스템과 디지털 비디오 리코더와 같은 다른 소비자용 장치들을 포함한다. 이들 장치는 비용 대비 효율적인 방식으로 높은 저장 용량을 제공한다.
이러한 메모리 저장 장치들에 있어서, 다양한 구성 부품들 및/또는 기능 블록들을 시험함에 있어서 커다란 도전 및 어려움이 있다. 예를 들어, 어떤 종래 기술의 접근 방식은 HDD 내의 다양한 구성부품들 및/또는 기능 블록들에 특정 신호들 을 제공할 수 있도록 어떤 형태의 임의 파형 발생기(AWG)를 사용하는 것을 수반한다. 이 AWG 기술의 한 선도자는 Tektronix®인데, HDD들의 설계 및 개발에 이용할 수 있는 다양한 AWG들을 제조하고 있다. 그러나, 이들 AWG는 전형적으로 매우 비싸고, 당해 기술분야에서 잘 이해되는 바와 같이, 어떤 성능상의 제한들(예컨대, 한정된 메모리 크기, 주로 읽기 채널 기능에만 집중하는 등)을 가지고 있다. HDD 및 다른 메모리 저장 장치들이 더 효율적이고, 간소화되고, 효과적인 방식으로 설계될 수 있는 더 나은 수단에 대한 요구가 계속되고 있다.
본 발명이 해결하고자 하는 과제는 HDD 및 다른 메모리 저장 장치들이 더 효율적이고, 간소화되고, 효과적인 방식으로 설계될 수 있는 장치 및 방법을 제공하는 것이다.
본 발명은 도면의 간단한 설명, 발명의 실시를 위한 구체적인 내용 및 특허청구범위에 더 설명된 장치 및 동작 방법들에 관한 것이다.
본 발명의 일 측면에 따르면, 하드 디스크 드라이브(HDD) 설계 시스템이 제공되는데, 이 시스템은,
HDD 시스템 내의 저장 매체(storage media), 스핀들 모터(spindle motor) 및 암(arm) 중 적어도 하나의 동작을 시뮬레이션하도록 동작하는 가상 하드 디스크 어셈블리(VHDA);
상기 HDD 시스템 내의 읽기 채널(read channel)의 동작을 시뮬레이션하도록 동작하는 읽기 채널 모듈;
상기 HDD 시스템 내의 컨트롤러(controller)의 동작을 시뮬레이션하도록 동작하는 컨트롤러 모듈;
상기 HDD 시스템 내의 서보 위치 시스템(servo position system)의 동작을 시뮬레이션하도록 동작하는 서보 위치 모듈; 및
상기 HDD 설계 시스템 내의 적어도 하나의 동작 파라미터(operating parameter)의 변경을 허용하도록 동작하는 사용자 인터페이스를 포함한다.
바람직하게는,
상기 HDD 설계 시스템은 실시간으로(in real time) 바로바로(on the fly) 서보 위치 시스템 데이터(servo position system data)를 발생시키도록 동작한다.
바람직하게는,
상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나는, 상기 HDD 설계 시스템 내에서, 적어도 부분적으로는 집적회로를 이용하여 구현된다.
바람직하게는,
상기 VHDA, 상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈 중 적어도 하나는 FPGA(field programmable gate array)를 이용하여 상기 HDD 설계 시스템 내에서 시뮬레이션된다.
바람직하게는,
상기 읽기 채널 모듈은 상기 HDD 설계 시스템 내에 읽기 채널 집적 회로로 구현되고,
상기 서보 위치 모듈은 상기 HDD 설계 시스템 내에 가상이 아닌 실제의 서보 위치 시스템으로 구현된다.
바람직하게는,
상기 읽기 채널 모듈은 상기 HDD 설계 시스템 내에 읽기 채널 집적 회로로 구현되고,
상기 컨트롤러 모듈은 상기 HDD 설계 시스템 내에 컨트롤러 집적 회로로 구 현되고,
상기 서보 위치 모듈은 상기 HDD 설계 시스템 내에 실제의 서보 위치 시스템으로 구현된다.
바람직하게는,
상기 HDD 설계 시스템은, 상기 VHDA, 상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나에 의해 생성되는 시뮬레이션 데이터를 저장하도록 동작하는 메모리 버퍼를 포함한다.
바람직하게는,
상기 HDD 설계 시스템은, 상기 VHDA, 상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나에 의해 생성되는 시뮬레이션 데이터를 저장하도록 동작하는 메모리 버퍼를 포함하고,
상기 메모리 버퍼는 적어도 1 기가 바이트의 시뮬레이션 데이터를 저장할 수 있도록 동작한다.
바람직하게는,
상기 사용자 인터페이스는 상기 VHDA, 상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈 중 적어도 하나의 동작을 제어하고 감시하도록 동작하는 컴퓨터를 포함한다.
바람직하게는,
상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈은 시스템 온 칩(SoC) 모듈로서 구현된다.
본 발명의 일 측면에 따르면, 하드 디스크 드라이브(HDD) 설계 시스템은,
HDD 시스템 내의 저장 매체, 스핀들 모터, 프리앰프(preamp), 및 암 중 적어도 하나의 동작을 시뮬레이션하도록 동작하는 가상 하드 디스크 어셈블리(VHDA);
상기 HDD 시스템 내의 읽기 채널의 동작을 시뮬레이션하도록 동작하는 읽기 채널 모듈;
상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하도록 동작하는 컨트롤러 모듈;
상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하도록 동작하는 서보 위치 모듈;
상기 HDD 설계 시스템 내의 적어도 하나의 시뮬레이션되거나 실제인 부품에 대해 변경을 허용하도록 동작하는 사용자 인터페이스; 및
상기 VHDA, 상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나에 의해 생성된 시뮬레이션 데이터를 저장하도록 동작하는 메모리 버퍼를 포함하고,
상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나는 상기 HDD 설계 시스템 내에서, 적어도 부분적으로는, 집적회로를 사용하여 구현되며,
상기 메모리 버퍼는 적어도 1기가 바이트의 시뮬레이션 데이터를 저장하도록 동작한다.
바람직하게는,
상기 HDD 설계 시스템은 실시간으로 바로바로 서보 위치 시스템 데이터를 발생시키도록 동작한다.
바람직하게는,
상기 VHDA, 상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈 중 적어도 하나는 FPGA(field programmable gate array)를 이용하여 상기 HDD 설계 시스템 내에서 시뮬레이션된다.
바람직하게는,
상기 서보 위치 모듈은 상기 HDD 설계 시스템 내에 실제의 서보 위치 시스템으로 구현된다.
바람직하게는,
상기 사용자 인터페이스는 상기 VHDA, 상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈 중 적어도 하나의 동작을 제어하고 감시하도록 동작하는 컴퓨터를 포함한다.
바람직하게는,
상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈은 시스템 온 칩(SoC) 모듈로서 구현된다.
본 발명의 일 측면에 따르면, 하드 디스크 드라이브(HDD) 시스템을 설계하는 방법이 제공되며, 상기 방법은,
HDD 시스템 내의 저장 매체, 스핀들 모터 및 암 중 적어도 하나의 동작을 시뮬레이션하는 단계;
상기 HDD 시스템 내의 읽기 채널의 동작을 시뮬레이션하는 단계;
상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하는 단계;
상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하는 단계;
상기 HDD 시스템 내의 저장 매체, 스핀들 모터 및 암 중 적어도 하나, 상기 읽기 채널 모듈, 및 상기 컨트롤러 모듈을 시뮬레이션할 때 생성된 시뮬레이션 데이터를 저장하는 단계; 및
상기 HDD 설계 시스템 내의 적어도 하나의 동작 파라미터를 사용자 인터페이스를 통해 제어하는 단계를 포함한다.
바람직하게는, 상기 방법은,
실시간으로 바로바로 서보 위치 시스템 데이터를 발생시키는 단계를 더 포함한다.
바람직하게는,
상기 HDD 시스템 내의 저장 매체, 스핀들 모터 및 암 중 적어도 하나, 상기 읽기 채널 모듈, 및 상기 컨트롤러 모듈을 시뮬레이션할 때 생성된 시뮬레이션 데이터를 저장하는 단계는 메모리 버퍼를 이용하여 수행되며,
상기 메모리 버퍼는 적어도 1 기가바이트의 시뮬레이션 데이터를 저장할 수 있도록 동작한다.
바람직하게는,
상기 읽기 채널의 동작을 시뮬레이션하는 단계는 읽기 채널 집적 회로를 이용하여 수행되는 것과,
상기 컨트롤러의 동작을 시뮬레이션하는 단계는 컨트롤러 집적 회로를 이용하여 수행되는 것 중 적어도 어느 하나이다.
본 발명의 다른 특징들 및 장점들은 첨부한 도면을 참조하여, 이어지는 본 발명의 상세한 설명에서 명확하게 될 것이다.
가상 디스크 드라이브는, 본 명세서에 설명된 다양한 측면들에 따라 구현될 경우, HDD 시스템 내의 어떠한 부품이라도 테스트되도록 할 수 있는 완벽한 설계 환경을 제공한다. 이 가상 디스크 드라이브 내에서는 HDD 시스템 내의 실제 부품들 전부를 사용할 수도 있고 전혀 사용하지 않을 수도 있다. 어느 HDD 시스템 내에서 어떤 부품들이 이용 가능하게 되면(즉, 그 HDD 내의 집적 회로나 그 밖의 부품들이 이용 가능하게 되면), 그러한 집적 회로들이나 부품들은 가상 디스크 드라이브 내에 장착될 수 있고, 그럼으로써, 상기 가상 디스크 드라이브는 일부의 실제 집적 회로들이나 부품들과 다른 일부의 시뮬레이션된 집적 회로들이나 부품들을 포함할 수 있다. 이러한 가상 디스크 드라이브는 어떤 HDD 시스템의 개발이 그러한 HDD 시스템 내에 들어가는 하나 또는 그 이상의 실제 하드웨어 부품이 이용가능하게 되기 몇 달 전부터 수행될 수 있게 할 수 있다. 이는 특히 HDD 시스템이 개발 중에 있어서 그러한 HDD 시스템의 설계가 종래 기술 및 이전의 HDD 시스템으로부터 비교적 본질적인 차이를 갖질 때에 유효하다. 그러한 환경에서는, 그러한 새로운 HDD 시스템 내의 다양한 하위 시스템들의 상호 작용에 대한 자료가 많지 않을 것이며, 설계 과정에서 엄청난 유연성을 허용하는 가상 디스크 드라이브는 매우 바람직한 것일 수 있다.
도 1은 디스크 드라이브 유닛(100)의 일 실시예를 예시한다. 특히, 디스크 드라이브 유닛(100)은 서보 모터(servo motor)(구체적으로 나타내지는 않음)에 의해 3,600 RPM, 4,200 RPM, 4,800 RPM, 5,400 RPM, 7,200 RPM, 10,000 RPM, 15,000 RPM 정도의 회전 속도로 회전되는 디스크(102)를 포함한다. 이때, 상기 회전 속도는 호스트 장치(host device) 내에서의 특정한 응용 분야 및 구현 방법에 따라, 제시된 회전 속도보다 더 높거나 더 낮은 그 밖의 회전 속도도 역시 사용될 수 있다. 하나의 가능한 실시예에서, 디스크(102)는 소정의 자기 매체(magnetic medium) 상에 발생하는 자기장의 변화로서 정보를 저장하는 자기 디스크(magnetic disk)일 수 있다. 이러한 매체는, 자기 물질로 구성되거나, 자기 물질로 코팅된 강성(rigid) 또는 비강성(nonrigid), 이동식(removable) 또는 고정식(nonremovable) 매체일 수 있다.
디스크 드라이브 유닛(100)은 하나 또는 그 이상의 읽기/쓰기 헤드들(read/write heads)(104)을 가지며, 이 읽기/쓰기 헤드들(104)은, 액츄에이터(actuator)(108)에 의해 상기 디스크(102)의 표면 위에서 병진(translation), 회전(rotation), 또는 두 동작 모두를 취하며 움직이는 암(arm)(106)에 결합된다. 상기 드라이브에 대한 읽기 및 쓰기 동작을 제어하기 위해, 또 서보 모터의 속도 및 액츄에이터(108)의 움직임을 제어하기 위해, 그리고 호스트 장치와 인터페이스를 제공하기 위해 디스크 컨트롤러(130)가 포함된다.
도 2는 디스크 컨트롤러(130)를 포함하는 장치(200)의 일 실시예를 예시한다. 특히, 디스크 컨트롤러(disk controller)(130)는 읽기/쓰기 헤드들(read/write heads)(104)을 통해 디스크(102)에 대해 데이터의 읽기 및 쓰기를 할 수 있도록 하기 위한 읽기/쓰기 채널(read/write channel)(140)을 포함한다. 디스크 포매터(disk formatter)(125)는, 데이터의 포매팅(fomatting)을 제어하기 위해 포함되며, 디스크(102)에 대해 쓰이거나 디스크(102)로부터 읽히는 데이터의 흐름을 제어하는 클럭 신호들 및 그 밖의 타이밍 신호들을 제공한다. 서보 포매터(servo formatter)(120)는 상기 디스크(102)로부터 읽어낸 서보 컨트롤 데이터(servo control data)에 기초한 클럭 신호들 및 그 밖의 타이밍 신호들을 제공한다. 디바이스 컨트롤러들(device controllers)(105)은, 액츄에이터(actuator)(108) 및 서보 모터 등의 드라이브 디바이스들(109)의 동작을 제어한다. 호스트 인터페이스(host interface)(150)는 상기 호스트 장치(host device)(50)로부터 읽기 및 쓰기 커맨드를 수신하고, 디스크(102)로부터 읽어낸 데이터를 다른 제어 정보들과 함께 호스트 인터페이스 프로토콜(host interface protocol)에 맞게 전송한다. 일 실시예에서, 상기 호스트 인터페이스 프로토콜은 SCSI, SATA, EIDE(enhanced integrated device electronics) 등이나, 또는 이러한 목적에 부합되게 이용될 수 있는 공개된 또는 전용의 기타 호스트 인터페이스 프로토콜들을 포함할 수 있다.
디스크 컨트롤러(130)는 더 나아가 프로세싱 모듈(132) 및 메모리 모듈(134)을 포함할 수 있다. 프로세싱 모듈(132)은 하나 또는 그 이상의 이상의 마이크로프로세서(microprocessors), 마이크로 컨트롤러(micro-controllers), 디지털 신호 처리장치(digital signal processors), 마이크로컴퓨터(microcomputers), 중앙 처리 장치(central processing units), FPGA(field programmable gate arrays), PLD(programmable logic devices), 상태 머신(state machines), 논리 회로들, 아날로그 회로들, 디지털 회로들, 그리고 그 밖에 상기 메모리 모듈(134) 내에 저장된 동작 명령어들에 기초하여 신호들(아날로그이든 디지털이든)을 조작할 수 있는 어떠한 장치들을 이용하여 구현될 수 있다. 상기 프로세싱 모듈(132)이 두 개 또는 그 이상의 장치들로 구현될 경우에, 각 장치는 오류 여유(fault tolerance) 또는 리던던시(redundancy)을 제공할 수 있도록 동일한 단계나, 처리 절차 또는 기능들을 수행할 수도 있다. 이와 다르게, 상기 프로세싱 모듈(132)에 의해 수행되는 상기 기능, 단계, 처리 절차들이, 더 강력한 연산 속도나 효율을 제공할 수 있도록 서로 다른 장치들 사이에 분할될 수도 있다.
메모리 모듈(134)은 단일 메모리 장치이거나 복수의 메모리 장치일 수 있다. 이러한 메모리 장치는 ROM(read-only memory), RAM(random access memory), 휘발성 메모리(volatile memory), 비휘발성 메모리(non-volatile memory), SRAM(static random access memory), DRAM(dynamic random access memory), 플래쉬 메모리(flash memory), 캐시 메모리(cache memory)나 그 밖에 디지털 정보를 저장할 수 있는 어떠한 장치도 될 수 있다. 이때, 상기 프로세싱 모듈(132)이 그 기능들 중 하나 또는 그 이상의 기능들을 상태 머신, 아날로그 회로 장치, 디지털 회로 장치, 논리 회로 각각 또는 이들의 조합을 통해 구현할 경우에, 상응하는 동작 명령어들을 저장하는 상기 메모리 모듈(134)은 상기 상태 머신, 아날로그 회로 장치, 디지털 회로 장치, 논리 회로 각각 또는 이들의 조합을 포함하는 회로 장치의 내부에 내장될 수도 있고, 또는 그 외부에 설치될 수도 있다. 더 나아가, 상기 메모리 모 듈(134)과 상기 프로세싱 모듈(132)은, 본 명세서에 예시되는 하나 또는 그 이상의 단계들, 절차, 방법 및 기능에 해당하는 동작 명령어들을 각각 저장하고, 실행한다.
디스크 컨트롤러(130)는 복수의 모듈들을 포함할 수 있는데, 특히, 디바이스 컨틀로러들(105), 프로세싱 모듈(132), 메모리 모듈(134), 읽기/쓰기 채널(140), 디스크 포매터(125), 서보 포매터(120) 및 호스트 인터페이스(150)를 포함하며, 이들은 버스들(136, 137)을 통해 서로 연결된다. 이들 모듈 각자는 본 발명의 광의의 범위에 따라 하드웨어, 펌웨어(firmware), 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 도 2에서는 버스들(136, 137)을 이용한 특정한 버스 구조가 나타나 있지만, 단일 버스 구성 또는 추가적인 데이터 버스들을 포함하는 다른 형태의 버스 구조나, 다양한 모듈들 간에 직접 연결 구조와 같은 다른 형태의 연결 구조 등이 본 발명의 다양한 실시예들에 포함되는 특징 및 기능들을 구현하는 데에 적용될 수 있다.
본 발명의 한 가능한 실시예에서는, 상기 디스크 컨트롤러(130)의 하나 또는 그 이상의 모듈들은 시스템-온-칩(system on a chip, SoC) 집적 회로의 일부로서 구현된다. 본 발명의 어떤 실시예에서는, 이러한 시스템-온-칩 집적 회로들은, 프로토콜 컨버터(protocol converters), 선형 블록 코드 인코딩 및 디코딩 모듈들(linear block code encoding and decoding modules) 등과 같은 부가적인 모듈을 포함하는 디지털 파트와, 디바이스 컨트롤러들(105)과 파워 서플라이 등과 같은 선택가능한(optionally) 부가적인 모듈을 포함하는 아날로그 파트를 포함한다. 다른 실시예에서는, 디스크 컨트롤러(130)의 다양한 기능들 및 특징들이, 상기 디스크 컨트롤러(130)의 기능을 수행할 수 있도록 상기 채널 인터페이스(128)를 통해 서로 통신하며 결합되는 두 개 또는 그 이상의 집적 회로들 내에 구현된다.
상기 드라이브 유닛(100)이 제조될 때에, 디스크 포매터(125)는 복수의 서보 웨지들(servo wedges)을 각각에 상응하는 복수의 서보 어드레스 표시(servo address marks)와 함께, 디스크(102) 주변을 따라 동일한 방사상 거리의 위치에 기록한다. 상기 서보 어드레스 표시들은 타이밍 발생기에 의해, 읽기/쓰기 헤드들(104)을 통해 상기 디스크(102)의 매체에 액세스할 때에 이용되는 다양한 이벤트들(events)의 "시작 시점(start time)"을 촉발시키는 데에 이용된다.
도 3a는 핸드헬드 오디오 유닛(51)의 일 실시예를 예시한다. 구체적으로, 디스크 드라이브 유닛(100)은 핸드헬드 오디오 유닛(51)의 내부에 구현될 수 있다. 하나의 가능한 실시예는, 상기 디스크 드라이브 유닛(100)이, 범용의 스토리지 공간을 제공하거나, 또는 사용자에게 재생되기 위해 MP3(motion picture expert group(MPEG) audio layer 3) 파일들이나 WMA(Windows Media Architecture) 파일들과 같은 오디오 콘텐츠와, MPEG4 파일과 같은 비디오 콘텐츠, 기타 디지털 포맷으로 저장될 수 있는 다른 형태의 정보들의 스토리지 공간을 제공할 수 있도록, 손에 휴대할 수 있는 오디오 유닛(51)에 통합되거나 또는 다른 방식으로 오디오 유닛(51)에 의해 사용되는, 그 디스크(102)가 1.8인치 직경이거나 또는 그보다 더 작은 형태인 소형 폼 팩터(form factor)의 자기 하드 디스크를 포함할 수 있다.
도 3b는 컴퓨터(52)의 일 실시예를 예시한다. 구체적으로 디스크 드라이브 유닛(100)은 컴퓨터(52) 내부에 구현될 수 있다. 한 가능한 실시예에서, 디스크 드라이브 유닛(100)은, 디스크(102)가 1.8인치 직경이거나 또는 그보다 더 작은 형태인 소형 폼 팩터의 자기 하드 디스크나, 기업용 스토리지 제품들과 같은 응용 제품들을 위한 2.5인치 또는 3.5인치의 드라이브 또는 그보다 더 큰 드라이브를 포함할 수 있다. 디스크 드라이브 유닛(100)은 디지털 포맷인 어떤 형태의 정보를 위한 범용 스토리지를 제공하기 위해, 컴퓨터(52)에 통합되거나, 또는 다른 방법으로 컴퓨터(52)에 의해 사용된다. 컴퓨터(52)는 데스크 탑 컴퓨터나, 서버와 같은 기업용 스토리지 장비, 또는 RAID 어레이, 스토리지 라우터, 에지 라우터(edge router), 스토리지 스위치, 스토리지 디렉터 각각 또는 이들의 조합과 같은 스토리지 어레이에 부착된 호스트 컴퓨터일 수 있다.
도 3c는 무선 통신 장치(53)의 일 실시예를 예시한다. 구체적으로, 디스크 드라이브 유닛(100)은 상기 무선 통신 장치(53)의 내부에 구현될 수 있다. 한 가능한 실시예에서, 디스크 드라이브유닛(100)은, 범용의 스토리지 공간을 제공하거나, MP3 파일들 또는 WMA 파일들과 같은 오디오 콘텐츠나 MPEG4 파일들과 같은 비디오 콘텐츠, 내장된 카메라에 의해 촬상되거나 상기 무선 통신 장치(53)에 다운로드된 JPEG(Joint Photographic Expert Group) 파일들, 비트맵(bitmap) 파일들 및 그 밖의 그래픽 포맷으로 저장된 파일들, 이메일, 웹페이지 정보(webpage information) 및 기타 인터넷을 통해 다운로드된 정보, 주소록 정보, 그 밖의 디지털 형식으로 저장될 수 있는 어떠한 형태의 정보의 각각, 또는 이들의 조합들을 위한 스토리지 공간을 제공할 수 있도록, 무선 통신 장치(53)에 통합되거나 또는 다른 방식으로 무선 통신 장치(53)에 의해 사용되는, 디스크(102)가 1.8인치 직경이거나 또는 그보다 더 작은 형태인 소형 폼 팩터의 자기 하드 디스크를 포함할 수 있다.
본 발명의 가능한 실시예에서, 무선 통신 장치(53)는, 셀룰러(cellular), PCS(personal communications service), GPRS(general packet radio service), GSM(global system for mobile communications) 그리고 iDEN(integrated digital enhanced network) 또는 그 밖의 전화 통화를 전송하고 수신할 수 있는 무선 통신 네트워크와 같은, 무선 전화 네트워크를 통해 통신할 수 있다. 더 나아가, 무선 통신 장치(53)는 인터넷을 통해 이메일에 접속하고, 콘텐츠를 다운로드하며, 웹사이트에 접속할 수 있도록, 그리고 오디오나 비디오 프로그램의 스트리밍(streaming)을 제공할 수 있도록 통신할 수 있다. 이러한 방식으로, 무선 통신 장치(53)는 전화 통화와, 이메일과 같은 문자 메시지들, 단문 서비스(short message service, SMS) 메시지들, 호출 서비스들(pages) 그리고 문서, 오디오 파일, 비디오 파일, 사진 또는 기타 영상물과 같이 첨부 파일에 포함시킬 수 있는 데이터 메시지들을 주고 받을 수 있다.
도 3d는 PDA(personal digital assistant)(54)의 일 실시예를 예시한다. 구체적으로, 디스크 드라이브 유닛(100)은 PDA(54) 내부에 구현될 수 있다. 한 가능한 실시예에서, 디스크 드라이브 유닛(100)은, 범용의 스토리지 공간을 제공하거나, MP3 파일들 또는 WMA 파일들과 같은 오디오 콘텐츠나 MPEG4 파일들과 같은 비디오 콘텐츠, JPEG 파일들, 비트맵 파일들 및 그 밖의 그래픽 포맷으로 저장된 파일들, 이메일들, 웹페이지 정보 및 기타 인터넷을 통해 다운로드된 정보, 주소록 정보, 그 밖의 디지털 형식으로 저장될 수 있는 어떠한 형태의 정보의 각각, 또는 이들의 조합들을 위한 스토리지 공간을 제공할 수 있도록, 개인 디지털 보조장치(54)에 통합되거나 또는 다른 방식으로 개인 디지털 보조장치(54)에 의해 사용되는, 디스크(102)가 1.8인치 직경이거나 또는 그보다 더 작은 형태인 소형 폼 팩터의 자기 하드 디스크를 포함할 수 있다.
도 3e는 랩탑 컴퓨터(55)의 일 실시예를 예시한다. 구체적으로 디스크 드라이브 유닛(100)은 상기 랩탑 컴퓨터(laptop computer)(55) 내부에 구현될 수 있다. 한 가능한 실시예에서, 상기 디스크 드라이브 유닛(100)은, 디스크(102)가 1.8인치 직경이거나 또는 그보다 더 작은 형태인 소형 폼 팩터의 자기 하드 디스크나, 2.5인치 드라이브를 포함할 수 있다. 디스크 드라이브 유닛(100)은 디지털 포맷의 어떤 형태의 정보를 위한 범용 스토리지를 제공할 수 있도록 상기 랩탑 컴퓨터(55)에 통합되거나, 또는 다른 방식으로 랩탑 컴퓨터(55)에 의해 사용된다.
하드 디스크 드라이브들(HDD)이 위와 같이 제공되는 이러한 다양한 하드 디스크 드라이브들 및 그 응용 제품들의 실시예들에 대해, 다른 형태의 HDD들 및 HDD 시스템들도 또한 채택될 수 있다는 점에 주목한다. 하지만, 어떤 특정한 응용 제품 또는 시스템을 위해 어떤 특정한 HDD의 구현예가 채택되느냐 또는 설계되느냐에 상관없이, 어쨌거나 그러한 HDD들을 설계해야 하는 필요성은 여전히 있다.
다양한 HDD 시스템들에 대한 훨씬 신속한 설계, 개발 및 테스트를 가능하게 하는 가상 디스크 드라이브의 다양한 실시예들이 본 명세서에 나타나 있다. 일부 실시예들에서, 실제 집적 회로들 또는 기타 부품들은 이 가상 환경 내에 실제로 삽 입될 수 있다. 이러한 능력을 이용하여, 특정 부품들(예를 들어 헤드 디스크 어셈블리)은 회로 기판(circuit boards), FPGA와 같은 디지털 회로 장치 및 그 밖의 에뮬레이션 수단을 이용하여 에뮬레이션(emulation) 될 수 있으며, 심지어 그 밖의 부품들(읽기 채널 부품들)도 상기 가상 디스크 드라이브 내에서 실제의 접적 회로나 그 밖의 하드웨어 부품들을 이용하여 구현될 수 있다. 이러한 관점으로부터, 실제/시뮬레이션 HDD 시스템의 하이브리드(hybrid)인 가상 디스크 드라이브가 에뮬레이션 될 수 있다(즉, 일부 부품들은 실제이고, 다른 부품들은 시뮬레이션(simulation) 된다)
이러한 가상 디스크 드라이브는, 테스트 환경이라는 점으로 보면, 서로 다른 시기에서 입수 가능하게 되는 다양한 부품들의 테스트를 가능하게 한다. 예를 들어, HDD 시스템을 개발할 때에, 수많은 집적 회로들 및 부품들이 채택될 수 있는데, 이들 집적회로들 및 부품들 각각은 이들이 입수 가능하게 되어서야 테스트 될 수 있다. 그렇지만 어떤 시점에서도, 실제의 부품은 상기 가상 디스크 드라이브 내에서 테스트될 수 있고, 상기 가상 디스크 드라이브 내의 나머지 부품들은 에뮬레이션/시뮬레이션될 수 있다.
이러한 가상 디스크 드라이브 아키텍쳐는 매우 큰 규모(very large scale)의 응용 제품 형태로 구현될 수 있다. 예를 들어, 모니터 및 테스트 목적으로 할당될 수 있는 메모리의 양은 종래 기술의 테스트 시스템들 내에서 찾아 볼 수 있는 수준의 메모리의 양을 훨씬 초과한다. 예를 들어, 일부 실시예에서는, 1 기가 바이트(Giga-byte, 1 GB) 용량의 버퍼가 구현되고 또한 데이터 정보를 포함한 특정 종 류의 정보를 수집하는 데에 전적으로 사용될 수 있다. 추가적으로, 서보 정보가 즉각(on the fly) 생성될 수 있기 때문에, 무한한 용량의 서보 정보가 상기 가상 디스크 드라이브 내에서 채택될 수 있다. 말하자면, 상기 서보 정보는 실시간(real time)으로, 즉 바로바로 생성되기 때문에, 상기 서보 정보를 취급하는 데에 버퍼링이 전혀 필요하지 않으며, 따라서 어떤 원하는 크기의 서보 정보라도 채택될 수 있다. 어떤 실시예들에서는, 디스크가 가상 디스크 드라이브 내에서 읽혀지기 때문에, 상기 가상 디스크 드라이브 내에 설치된 FPGA를 이용하여, 각 섹터에 상응하는 정보가 수집될 수 있고, 또한 상기 서보 정보도 그로부터 즉각적으로 생성될 수 있다.
일반적으로 말하면, HDD는 자기 매체(하나 또는 복수의 플레터(platters)들을 갖는 디스크 어셈블리(Head Disk Assembly, HDA), 읽기 및 쓰기를 위한 자기 헤드를 갖는 암(arm), 프리앰프(preamp), 상기 암을 위한 모터(또는 보이스 코일 모터(voice coil motor)라고도 함), 스핀들 모터(상기 매체를 회전시키기 위함) 및 인쇄 회로 기판(printed circuit board)을 포함한다. 이때, 상기 인쇄 회로 기판은 읽기 채널 기능 블록(또는 집적 회로), 컨트롤러 기능 블록(또는 집적 회로) 및 모터 컨트롤 기능 블록(또는 집적 회로)을 가진다. 최근의 장치들은 읽기 채널과 컨트롤러를 하나의 시스템 온 칩(SoC) 집적 회로에 통합시키고 있다. HDD 시스템을 개발하는 데에는, 이러한 부품들의 대부분은 어느 적정 수준까지는 동작할 필요가 있다. 가장 중요한 시스템들 중의 하나는 서보 루프 컨트롤 시스템(servo loop control system)으로서, 이는 헤드와 매체가 동기를 유지하도록 하여, 트랙의 탐색 이나(seeking of a track), 트랙 추적(track-following)을 통한 어떤 트랙에 대한 읽기/쓰기를 가능하게 하는 시스템이다. 이러한 부품들 중 어떤 하나라도 기능하지 않으면, 헤드는 디스크에 충돌할 수 있고 디스크를 손상시킬 수 있다. 그 결과, 업계의 개발자들은 통상적으로 새로운 HDD 시스템들을 이전의 HDD 시스템들에 기초한다. 그러함에도, 새로 설계된 HDD들은 개발 과정에서 종종 파손된다.
통상적으로 읽기 채널 장치는 임의 파형 발생기(AWG)와 함께 테스트 될 수 있고, 컨트롤러 소프트웨어의 일부는 시뮬레이션된 HDA, 즉 디지털 HDA와 함께 테스트 될 수 있다.
가상 디스크 드라이브는, 본 명세서의 여러 측면들에 따라 구현되는 바와 같이, 전체 시스템이 제대로 기능을 하거나, 또는 그 중 어느 것도 기능을 하지 않더라도, 부품들 중 여하한 것의 초기 단계 개발도 가능하게 할 수 있는, 완전한 가상 디스크 드라이브(종종 Vdrive라고 참조됨)를 제공한다. 상기 가상 디스크 드라이브는 실리콘(silicon) 단계에 이르기 전 수 개월 또는 HDA가 완성되기 전 수 개월의 기간을, HDD 시스템의 개발에 제공할 수 있다.
상기 가상 디스크 드라이브는, 매체 가상 시스템에 대해 사용자 인터페이스(예를 들어 컴퓨터(PC))로 하여금 HDD 인터페이스 버스(CE-ATA나 CF+와 같은)를 통해 가상 디스크 드라이브와 교신할 수 있도록 하는 완전한 호스트 장치를 제공한다. 이는 호스트 소프트웨어의 개발도 가능하게 한다. 추가적으로, 가상 디스크 드라이브는 집적 회로 개발 환경과 직접적으로 연결되는 시뮬레이션 환경을 제공한다. 가상 디스크 드라이버는, 통상적으로 종래의 기술에서 사용되는 것과 같은 AWG 가 제공할 수 있는 수준에 비해 훨씬 더 많은 양의 실시간 또는 비 실시간 데이터를 제공할 수 있다. 이는 복수 트랙의 데이터를 필요로 하는 소프트웨어의 개발을 가능하게 한다. 이러한 구현예와 AWG 구현예 사이의 차이는 다음과 같은 사항들에서 "대 축척(large scale)"라는 용어로서 나타낼 수 있다.
상기 가상 디스크 드라이브는,
1. 대 축척 서보 구현
2. 마이크로조그(microjogs) 기능을 포함하는 대 축척 서보 구현
3. 대 축척 스핀들 구현
4. 클럭 변동(clock variance) 기능을 포함하는 대 축척 스핀들 구현
5. 대 축척 액츄에이터 구현
6. 공진 현상을 고려하는 대 축척 액츄에이터 구현
7. 여러 펄스 형태들(pulse shape)을 갖는 아날로그 출력의 대 축척 구현
8. 서로 다른 두 펄스들을 원하는 퍼센티지로 혼합한 펄스 형태들을 갖는 아날로그 출력의 대 축척 구현
9. 심볼간 간섭 현상, 잡음 및 왜곡을 고려하는 아날로그 출력의 대 축척 구현
10. 오류 정정 코드 및 역 오류 정정 코드 기능의 대 축척 구현
을 제공한다.
상기 가상 디스크 드라이브는, 정보를 포함하는 트랙들을 프리로딩(preloading)하거나 그 트랙들을 읽을 수 있는, 서로 분리된 제어 소프트웨어를 제공할 수 있다. 일반적으로 말해서, 가상 디스크 드라이브는 종래 기술의 접근 방법들을 이용할 경우에 필요하게 되는 어떠한 테스트 장비도 불필요한, 매우 간결한 솔루션을 제공한다.
도 4는 하드 디스크 드라이브(HDD)를 포함하는 시스템(400)의 일 실시예를 예시한다. 이 시스템(400)은, 본 명세서의 다른 실시예들과 마찬가지로, HDD 설계 시스템 내부에서 사용되는 기본적인 구성요소들을 제시하는 것으로 이해될 수 있다. 상기 HDD 내의 다양한 구성요소들 중에는 스핀들 위에 장착된 실제의 디스크(여러 개의 자기 기록층(magnetic recording layers, 즉 플래터들)을 포함할 수 있다)가 포함된다. 스핀들 모터(spindle motor, 이하 SPM)(411)는 스핀들 제어 모터(spindle control motor)(412)에 의해 관장되어 상기 플래터들의 회전을 통제한다. 보이스 컨트롤 모터(voice control motor, 이하 VCM)(413)는, 서보 위치 시스템(servo position system)(423)에 의해 통제되는데, 읽기/쓰기 헤드 어셈블리를 상기 매체의 여러 지점들 위에 위치시킬 수 있도록 동작한다. 매체 위에서 암이 자리잡은 실제 위치에 기초하여, 정보가 매체에 쓰이거나 매체로부터 읽히며, 리드 채널 기능 블록 또는 모듈(421)을 통해 전달된다. 이때, 상기 리드 채널 기능 블록 또는 모듈(421)은 또한 서보 위치 시스템(423)을 조종하여 상기 헤드 어셈블리가 적절히 이동하도록 한다. 가상 하드 디스크 어셈블리(virtual hard disk assembly, 이하 VHDA)(410)는 VCM(413), SPM(411), 프리앰프(414), 매체 등등을 포함한다.
컨트롤러 기능 블록 또는 모듈(422)은, 프리앰프(414)에 결합된 상기 읽기 채널 기능 블록 또는 모듈(421)에 역시 결합되는데, 상기 컨트롤러 기능 블록 또는 모듈(422)은 또한 인터페이스 아답터(interface adapter)(430)에 결합된다. 상기 인터페이스 아답터는 컴퓨터(예를 들어, 개인용 컴퓨터 또는 그 밖의 형태의 컴퓨터로서, 참조 번호 431로 지시된 것)의 인터페이스 아답터가 될 수 있으며, 설계자로 하여금 테스트하는 동안 가상 디스크 드라이브의 다양한 부품들을 제어하고 관리할 수 있게 한다. 상기 인터페이스 아답터는 또한, HDD 설계 시스템인 것으로 볼 수 있는 상기 시스템(400) 내부의 다양한 구성요소들 중 어느 것이라도 그에 관련된 시뮬레이션 데이터를 저장할 수 있도록 동작하는 메모리 버퍼(432)를 포함할 수 있다. 이 메모리 버퍼(432)는 몇몇 사례에서는 그 크기가 1 GB에 이르거나 그보다 더 큰 크기를 포함하는 정도로 극단적으로 클 수 있어서, 어떠한 종래 기술의 접근 방식에서 이용되는 것보다 훨씬 더 큰 시뮬레이션 데이터가 저장되도록 할 수 있다. 일부 실시예들에서, 상기 읽기 채널 기능 블록 또는 모듈(421), 컨트롤러 기능 블록 또는 모듈(422) 및 서보 위치 시스템(423)은, 이들 모두가 단일한 하나의 집적 회로 내부에 통합되는데, 예를 들어 시스템-온-칩(SoC)(420)을 이용하여 구현될 수 있다. 본 실시예에서 나타나는 하나 또는 그 이상의 다양한 구성요소들은 본 발명의 범위와 사상에서 벗어나지 않고도 마찬가지로 집적될 수 있다.
본 실시예에서, 상기 VHDA(410)는 HDD 시스템 내부의 저장 매체, 스핀들 모터 및 암 중에서 적어도 하나의 동작을 시뮬레이션하도록 동작한다. 상기 읽기 채널 모듈(421)은 상기 HDD 시스템 내부의 읽기 채널의 동작을 시뮬레이션하도록 동작하며, 상기 컨트롤러 모듈(422)은 상기 HDD 시스템 내부의 컨트롤러의 동작을 시뮬레이션하도록 동작한다. 상기 서보 위치 모듈(423)은 상기 HDD 시스템 내부의 서 보 위치 시스템의 동작을 시뮬레이션하도록 동작하며, 사용자 인터페이스(예를 들어, 상기 인터페이스 아답터(430)를 이용하여 설명된 것과 같은 것)는 상기 HDD 설계 시스템 내부에서 적어도 하나의 동작 파라미터의 변경을 허용하도록 동작한다. 상기 서보 위치 모듈(423)은 실시간으로 바로바로 서보 위치 데이터를 생성하도록 동작하며, 그럼으로써, 상기 HDD 설계 시스템 내에 채택될 수 있는 서보 위치 데이터의 양에 관해 메모리 버퍼에 의해서는 제한이 존재하지 않는다.
도 5는 HDD 설계 시스템(500)의 일 실시예를 예시한다. 실제 HDD 시스템의 전체가 상기 HDD 설계 시스템(500) 내의 가상 디스크 드라이브 및 기타 구성요소들을 이용하여 모델링될 수 있다. 도 5의 시스템(500)은 이전 도면의 시스템과 동등하며, HDD 설계 시스템(500)의 각 부속들은 가장 디스크 드라이브 내부에서 에뮬레이션/시뮬레이션 된다. 상기 VHDA는 필요한 경우에는, FPGA들이나 그 밖의 부속들로 이뤄진 디지털 회로 장치를 포함하는 DHDA(Digital Hard Disk Assembly)와 같이 구현될 수 있다. 예를 들어, 상기 VHDA, 상기 읽기 채널 모듈(521), 상기 컨트롤러 모듈(522) 및 상기 서보 위치 시스템 또는 모듈(523) 중의 어느 하나 또는 그 이상이 하나 또는 그 이상의 FPGA들을 이용하여 구현될 수 있다.
상기 VHDA(DHDA)의 두 가지 가능한 실시예들(참조 번호 510a, 510b로 나타내었음) 중 하나가 구현될 수 있다. 만약 원한다면, 상기 읽기 채널 기능 블록 또는 모듈(521)과 상기 서보 위치 시스템(523)은 상기 VHDA(DHDA)(510b) 내에 포함될 수도 있고(실시예 2), 또는 상기 VHDA(DHDA)(510a)의 외부에 놓일 수 있다(실시예 1).
다시 한번, 상기 가상 디스크 드라이브가 하나 또는 그 이상의 칩들(즉, 집적 회로들) 또는 기타 부속들이 이 시스템에 물리적으로 삽입될 수 있다는 점을 주목한다. 예를 들어, 채널 모듈(521) 또는 컨트롤러 모듈(522) 중의 어느 하나는, 전체적으로 또는 부분적으로, 집적 회로를 이용하여 구현될 수 있다. 이는, 상기 HDD 설계 시스템(500) 내부의 부품들 중 어떤 것들은 실제이고, 상기 HDD 설계 시스템(500) 내부의 부속들 중 나머지 것들은 가상인 것을 가능하게 할 수 있다. 또한 이는, 가상의 구성요소와 실제의 구성요소들의 어떠한 조합도 상기 HDD 설계 시스템(500) 내에서 채택될 수 있다는 점에서, 더 넓은 범위의 테스트 능력을 가능하게 할 수 있다. 이는 종래 기술의 접근 방식에서 이용될 수 있는 것보다 훨씬 더 좋은 테스트 방식을 가능하게 할 수 있다.
HDD 시스템 내의 구성요소들 각각에 대해 상기 가상 디스크 드라이브(501) 및 기타 구성요소들을 이용하여 에뮬레이션/시뮬레이션할 수 있는 능력을 제공함으로써, 개발자들 및 설계자들은 훨씬 더 정확하고 완벽한 분석 정보를 전체 HDD 시스템의 개발에 이용될 수 있도록 제공받을 수 있다.
도 6은 가상 디스크 드라이브를 포함하는 HDD 시스템(600)의 일 실시예를 예시한다. 상기 HDD 설계 시스템(600)은 사용자 인터페이스(610)(즉, PC(개인용 컴퓨터)나 이와 유사한 것들과 같은 컴퓨터), HDC(Hard Disk Controller)(620)(즉, 컨트롤러 기능 블록) 및 DHDA(Digital Hard Disk Assembly)(630)를 포함한다. 상기 HDC(620)은 하드웨어 가속기(hardware accelerator)(621), 하나 또는 그 이상의 회로 기판들(622), 하나 또는 그 이상의 FPGA들(623), 하나 또는 그 이상의 집적 회 로들(624) 그리고 하나 또는 그 이상의 기타 부속들을 이용하여 구현될 수 있다. 상기 사용자 인터페이스(610)는 사용자의 조작을 가능하게 하며, 상기 HDD 설계 시스템(600)의 다양한 부속들 각자의 성능을 감시할 뿐 아니라, 상기 부속들 각각에 또는 각각으로부터 전달되는 다양한 신호들을 제공할 수 있게 한다.
도 7은 HDD 설계 시스템(700)의 다른 실시예를 예시한다. 상기 HDD 설계 시스템(700)은, 읽기 섹터 엔진/메모리(read sector engine/memory)(711) 및 서보 웨지 엔진(712)을 가지는 DHDA(710)를 포함하는 가상 디스크 드라이브(701)를 포함한다. 위의 다른 실시예들에서 설명하였다시피, 상기 가상 디스크 드라이브(701)의 상기 서보 관련 정보(즉, 시뮬레이션 정보)는 실시간으로 생성되며, 이는 무제한적인 그러한 정보가 이용될 수 있도록 한다. MagIC 기능 블록 또는 모듈(magnetic inverse channel functional block or module)(720)은 상기 HDD 설계 시스템 내에 실제 집적 회로들이나 부속들이 배치될 수 있게 한다. 예를 들어, 실제 집적 회로가 상기 MagIC 기능 블록 또는 모듈(720) 내에 구현되어, 그에 관해 더욱 완전하고 더욱 정확한 테스트 및 분석을 가능하게 한다. 원하는 경우에는, 컨트롤 라인들(719)이 상기 DHDA(710) 및 상기 MagIC 기능 블록 또는 모듈(720) 사이에 제공되어 이들 사이의 통신 및 제어를 가능하게 할 수 있다. 상기 MagIC 기능 블록 또는 모듈(720)은 펄스 발생기(721), 왜곡 신호 발생기(722), 잡음 신호 발생기(723), NRZ(non-return to zero) 인코더(724), CDR(clock and data recovery) 기능 블록(726) 및 DAC(digital to analog converter)(725)를 이용하여 다양한 기능들을 수행할 수 있도록 동작한다.
읽기 및 쓰기 동작들(각각 Rdx/Rdy(731) 및 Wdx/Wdy(732)라고 지시됨)은 SoC/VHDC(참조 번호는 각각 730 및 740)과 상기 MagIC 기능 블록 또는 모듈(720) 사이에서 수행된다. 호스트(750)는 인터페이스 아답터(interface adapter)일 수 있고, 인터페이스 아답터는 설계자로 하여금 상기 HDD 설계 시스템(700) 내부에서 테스트하는 동안에 가상 디스크 드라이브의 다양한 부속들을 제어하고 감독할 수 있도록 하는 컴퓨터(예를 들어 개인용 컴퓨터 또는 기타 형태의 컴퓨터)가 될 수 있다. 상기 호스트(750)는 또한 메모리 버퍼(432)를 포함할 수 있는데, 이는 상기 HDD 설계 시스템(700) 내의 다양한 부속들 중 여하한 것에 상응하는 시뮬레이션 데이터를 저장하도록 동작한다.
도 8은 읽기 및 서보 이벤트 신호들(800)의 일 실시예를 예시한다. 가상 디스크 드라이브 환경에서 정확하고 완벽한 테스트 및 진단을 수행하는 데에 가장 중요한 요소들 중 하나는 아마도 그 환경 내에서 이용되는 디지털 신호들일 것이다. 다른 식으로 말하자면, 만약 상기 가상 디스크 드라이브 내에 이용되는 이러한 디지털 신호들이 정확하지 않으면, 모델링, 시뮬레이션, 테스트 등등이 모두 정확하지 않게 될 것이다. 저장 매체의 트랙들의 포맷에 관한 배경 지식을 밑에 설명한다.
각 트랙들은 읽기 섹터들을 포함하며, 서보 웨지들이 그 안에 산재되어 있다. 각 리드 섹터들은 도 8의 가장 상부에 나타낸 것과 같은 포맷을 가진다. 각 서보 웨지는 그 밑에 지시된 것과 같은 포맷을 포함하며, 각 서보 웨지는 RRO(Repeatable Runout) 필드들로 종료된다.
도 9는 각각 온트랙(on-track) 모드 및 탐색(seek) 모드에서 동작할 때에 이용되는 신호들의 일례를 예시한다. 온트랙 모드로 동작할 때에는, 읽기 섹터 다음은 서보 웨지가 뒤를 이을 수 있고, 또한 이 서보 웨지는 복수의 읽기 섹터들 등이 뒤를 이을 수 있다. 탐색 모드로 동작할 때에는, 특히 서보 웨지들이 원하는 지점을 찾는 데에 이용된다. 각 서보 웨지는 프리엠블(preamble), SAM(servo address matrix) 및 그레이 코드(Gray Code)라는 필드들을 포함한다.
도 10은 자기 펄스들(magnetic pulses)에 의해 생성된 다양한 컨볼루셔널(convolutional) 신호들의 일 실시예를 예시한다. 위에서 언급한 바와 같이, HDD 시스템 내에 실제로 존재하는 신호들을, 그 불완전함, 왜곡 및 잡음 신호까지 정확히 발생시키는 것은 그 HDD 시스템의 정확한 모델링을 담보하는 데에 가장 중요한 것이다. 자기 채널 내에서 이용되는 신호들을 발생시키는 다양한 수단들과 그 안에서 신호들에 대해 수행되는 여하한 형태의 컨볼루션(convolution)이 설명되어 있다.
로렌치안 계단 응답(Lorentzian step response), 가우시안 계단 응답(Gaussian step response) 및 에러 함수(error function)(계단 응답)을 포함하여 적어도 세 개의 신호가 이용된다. PMR(Perpendicular Magnetic Recording) 또는 LMR(longitudinal Magnetic Recording) 환경들 중 어느 것에서도 타당한 모델링을 위해서는, 그러한 형태의 시스템들 내부에 포함된 신호들을 적절하게 발생시키는 것이 요구된다. 이러한 세 입력 신호들 중 어느 것이라도 직접 이용될 수 있다(예를 들어, 상기 로렌치안 계단 응답은 LMR을 이용하는 어느 HDD 시스템 내에서 직접 적으로 이용될 수 있다). 그러나, 종종, 어떤 적절한 방식의 컨볼루션을 거친 다음에, 이러한 신호들의 조합들은 좀더 양호하고 더 정확한 신호 모델링을 제공할 수 있다.
예를 들어,로-가우시안 (LorGaussian) 계단 응답은 로렌치안 계단 응답과 가우시안 계단응답의 조합으로서, 각각은 적절한 크기 변환(scaling)을 거친 후이다. 추가적으로, 로-가우시안 펄스 응답(LorGaussian pulse response)(Dibit)이 상기 HDD 시스템에 대한 좀더 정확한 채널 추정을 제공하는 방식으로 이뤄질 수 있다. 유사한 방식으로, 로렌치안 펄스 응답(Lorentzian pulse response)도 또한 LMR을 채용한 HDD 시스템 내부에서 이뤄질 수 있다.
PMR을 채용한 HDD 시스템 내부에서는 에러 함수 펄스 응답(Dibit)이 이용될 수 있다.
이러한 다양한 응답들(Dibits) 중 어느 하나는, 종래 기술의 시스템들에서 현재 이용될 수 있는 것보다 더욱 완벽하고 정확한 HDD 시스템의 테스트 및 시뮬레이션을 수행할 수 있도록 가상 디스크 드라이브 내에서 이용될 수 있다.
도 11은 계단응답 기반 아키텍쳐(1100)의 일 실시예를 예시한다.
도 12는 펄스응답 기반 아키텍쳐(1200)의 일 실시예를 예시한다.
도 11 및 도 12 각각을 비교할 때 알 수 있는 바와 같이, 가상 디스크 드라이브 내에서 계단 응답들 또는 펄스 응답들을 포함하는 서로 다른 신호들이 특정한 환경에서 요구되는 대로 선택될 수 있다.
도 13은 잡음 및 왜곡 기초 모델(1300)의 일 실시예를 예시한다. 생성 코 드(generated code) 신호는 h(t)로 모델링되는 채널 모델에 제공되고, 이어서 다양한 잡음 및 왜곡 성분들이 여기에 추가된다. 이들 성분들은, 읽기 동작들만으로 발생되는 성분들과, 읽기 및 쓰기 동작들에 의해 기여된 성분들로 구분될 수 있다.
도 14는 제1 천이 매체 잡음(transition media noise) 모델(1400)의 일 실시예를 예시하고, 도 15는 제2 천이 매체 잡음 모델(1500)의 일 실시예를 예시한다. 천이 잡음을 포함하는 신호가 각 모델들 각각의 출력 신호이다.
도 16은 자기 저항 비대칭성(Magneto-Resistive Asymmetry, MRA)(1600)의 모델링의 일 실시예를 예시한 것이고, 도 17은 열잡음(thermal asperity)의 일 실시예를 예시한 것이며, 도 18은 프리앰프(preamp) 왜곡의 일 실시예를 예시한다.
이들 여러 모델들의 각각은 위에서 설명한 바와 같이, 가상 디스크 드라이브를 이용하여 현재 모델링되고 있는 HDD 시스템들이 동작하는 동안, 다양한 부속들에 대한 그리고 이들 부속들에 의해 발생할 수 있는 효과들에 대한 더욱 정확한 시뮬레이션과 모델링을 위해 채택될 수 있다.
상술한 바와 같이, 가상 디스크 드라이브를 이용하여 정확한 테스트를 수행하는 데에 가장 중대한 요소는, HDD 시스템에서 이용되고 또한 통상적으로 나타나는 신호들을 정확하게 발생시키는 것이다. 디지털 FIR(Finite Impulse Response) 아키텍쳐, 아날로그 FIR 아키텍쳐 및 저항 네트워크(resistor network)를 포함하여, 다양한 컨볼루션 아키텍쳐가 아래에 제시된다.
도 19는 DAC/FIR(Digital to Analog Converter/Finite Impulse Response Filter) 아키텍쳐의 일 실시예를 예시한다. 입력 비트 스트림이 소정 개수의 딜레 이들에 제공된다. 원래의 입력 비트 스트림은, 직렬 연결된 딜레이들로부터 출력되는 각각의 출력들과 함께, 각각 상응하는 곱셈기(multiplier)에 공급된다. 각 곱셈기들의 값들은 소정 개수의 프로그램 가능한 레지스터들(registers)을 이용하여 묘사된 바와 같이 프로그램 가능한 것이다. 궁극적인 출력은 아날로그 출력 신호(analog output signal)이다.
도 20은 FIR 계단응답 아키텍쳐(2000)의 일 실시예를 예시한다.
도 21은 FIR 펄스응답 아키텍쳐(2100)의 일 실시예를 예시한다.
도 20 및 도 21의 각각의 도 19의 실시예의 한 변종이다. 상기 프로그램 가능한 레지스터들의 값은, 가상 디스크 드라이브 내에서 이용되는 신호들을 생성하는 데에 이용되는 표의 형태로 나타낼 수 있다. LMR(수평 자기 기록) 또는 PMR(수직 자기 기록) 중 어느 쪽이 요구되느냐에 따라, 상기 프로그램 가능한 레지스터들 내의 적절한 값들은 그에 따라 변경될 수 있다.
도 22는 저항 네트워크 아키텍쳐(2200)의 일 실시예를 예시한다. 복수의 딜레이 탭들(delay taps)을 포함하는, 유사 구조를 가진(analogous) 딜레이 라인(delay line)이 이용될 수 있다. 이때, 모두 함께 합산됨으로써 결과적으로 아날로그 출력 신호를 생성하는 신호들을 위해 아날로그 저항 네트워크가 사용될 수도 있다.
도 23은 계단(천이)응답 또는 펄스응답에 의해 출력을 형상화하는 접근 방식들의 일례(2300)를 예시한다. 이러한 예들의 각각은 LMR이나 PMR에 대해 어느 쪽이 요구되더라도 이를 수용할 수 있는 것으로 나타나 있다. 이진 시퀀스(binary sequence)가 적절한 형태의 HDD 시스템(PMR 또는 LMR 어느 쪽으로든)에 상응하는 대로 컨볼루션 연산이 이뤄진(convolved) 신호를 생성할 수 있도록 FIR(컨볼루션 연산기)에 제공된다.
도 24는 DAC와 관련하여 FIR 구현의 일 실시예(2400)를 예시한다. 소정 개수의 MUX들(multiplexers)이 이용될 수 있고, 이것의 최종 출력은 DAC(Digital to Analog Converter)에 제공되며 결과적으로 출력 아날로그 신호를 발생시킨다.
위에서 언급된 바와 같은 상기 MagIC 기능 블록들 및 기능들에 대한 다양한 상세 사항들이 아래에 역시 제공된다. 일부 실시예들에서, 상기 MagIC의 기능들은 50 Mbps에서 600 Mbps에 이르는 주파수 범위와, 100 mV에서 1V에 이르는 전압 동적 범위(voltage dynamic range) 및 12 비트 병렬 심볼들을 갖는 NRZ 신호의 입력 시퀀스를 제공한다. PMR 기록 방식이든 LMR 기록 방식이든 어느 쪽이라도 수용될 수 있다. 각 요소들의 천이 시간은, 인가되는 심볼간 간섭(ISI)의 양을 조절할 수 있도록 조절(예를 들어, 10 nsec에서 20 nsec 정도까지)될 수 있다. 또한, 상기 MagIC 기능들은 매체의 잡음 및 열 잡음을 제공할 수 있도록 개조될 수 있다.
도 25는 LMR(Longitudinal Magnetic Recording)을 채택하는 HDD 시스템들에 적합하도록 설정된 LUT(Look Up Table) 기반 구현예의 일 실시예(2500)를 예시한다. 40 개의 탭들(4배 오버샘플링 때문임)을 가지는 FIR이 이용될 수 있지만, 매 시간에 10 개의 탭들만이 유효하게 동작한다. 원한다면, 출력은 단지 4 x 1024 개의 값들을 가질 수 있다.
도 26, 도 27 및 도 28은 LMR에 적합한(예를 들어, 도 25에 예시된 바와 같 은) 것과 같은 LUT의 항목들의 일례들(2600, 2700, 2800)을 각각 예시한다.
도 29는 PMR(Perpendicular Magnetic Recording)을 채택하는 HDD 시스템들에 적합한 LUT(Look Up Table) 기반 구현예의 일 실시예를 예시한다. 마찬가지로, 40 개의 탭들(4배 오버샘플링에 기인함)을 가진 FIR이 이용될 수 있는데, 이 실시예에서는 모든 비트들이 유효할 수 있다. 원하는 경우에는, 출력은 단지 4 x 2048 개의 값들만 가질 수 있다.
도 30, 도 31 및 도 32는 PMR에 적합한 (예를 들어, 도 29에 예시된 바와 같은) 것과 같은 LUT 항목들의 예들(3000, 3100, 3200)을 예시한다.
도 33은 저항 네트워크 방식의 일 실시예(3300)를 예시한다. 나타낸 바와 같이, 본 시스템의 기본적인 구성 블록은, 복수의 탭들, 복수의 가중 저항들 및 출력 신호를 제공하는 TIA(Trans-Impedance Amplifier)을 갖는 딜레이 라인이다.
도 34는 저항 네트워크 구현의 실시예들(3400)(변형예 1, 변형예 2)을 예시한다. 변형예 2는 변형예 1에 비교될 경우에, 단일한 복수 가중 저항 구조를 재사용할 수 있다.
도 35는 FPGA와 관련한 저항 네트워크 구현의 일 실시예(3500)를 예시한다. 입력 신호들은 복수의 저항들에 의해 FPGA에 제공되는데, 이들 신호들은 계속해서 각각 캐스캐이드 연결된(cascaded) 복수의 TIA들에 제공되며, 최종적인 출력은 마지막 TIA로부터 출력된다.
도 36은 LMR을 채택한 HDD 시스템들을 위한 아날로그 컨볼루션 연산(convolution)의 일 실시예(3600)를 예시한다. 이 실시예(3600)에서, 데이터 스 트림에서의 각각의 천이(옅은 색으로 나타냄) 부분은 특정한 천이 응답(상승 시간 및 하강 시간) 및 가변하는 펄스 지속 시간을 갖는 개별적인 "아날로그 천이 응답 발생기(analog transition response generator)"를 촉발시킨다.
도 37 및 도 38은 입력 스트림(stream) 분해에 대한 실시예들(3700, 3800)을 예시한다.
도 39는 아날로그 천이 응답 발생기 및 합산기(sum)의 일 실시예(3900)를 예시한다. FPGA(분해기)는 소정 개수의 출력 신호들을 제공하며, 이들 출력 신호들은 각각 유사한 형태의 상응하는 어떤 회로 조직을 통과한다. 이때, 상기 회로 조직은 다이오드 네트워크를 포함하는데, 이 다이오드 네트워크는 여기에 전류를 공급하는 두 개의 전류 공급원들을 포함하며, 이때 이 전류 공급원들의 출력 값은 상기 가상 디스크 드라이브 내에 천이 응답 시간을 조정할 수 있도록 수정된다. 상기 다이오드 네트워크의 출력은 제1 버퍼에 제공되며, 이 버퍼 앞에는 접지에 연결된 션트(shunt) 커패시터가 위치한다(또한 원하는 경우에는, 서로 반대 방향으로 연결된 두 개의 다이오드들이 전원 전압에 연결되어 있다). 제1 버퍼의 출력은 비선형 요소에 제공되며, 이 비선형 요소의 출력은 제2 버퍼를 통해 진행한다. 제2 버퍼의 출력은 저항을 통과하는데, 이 저항은 TIA에 연결되어 있다. 이 TIA는 3 GHz의 동작 대역폭을 제공하는 몇몇 실시예들에서 THS4304 TIA일 수 있다. 보이는 바와 같이, 상기 TIA로부터 출력은 도면 상부에 나타낸 비트 스트림(각각의 천이를 나타냄)에 상응한다. 만약 필요한 경우, FPGA로부터 곧바로 출력된 저속 대칭 출력이 응답 발생기로서 이용될 수 있다.
이제까지의 다양한 실시예들 및 접근 방식들 중의 몇몇을 고려해보면, 어떤 특징이 나타날 수 있다.
첫 실시예에서, DAC를 갖는 디지털 FIR은 초당 2.3 기가샘플이라는 디지털 속도, 1.15 GHz 아날로그 속도의 LPF를 제공할 수 있고, 전체적인 크기는 병렬 FIR 구현예 내의 DAC를 더한 FPGA에 의해 주로 좌우된다. 완전한 프로그램 가능 능력 또한 이러한 접근 방식을 이용하여 이뤄질 수 있다.
두 번째 실시예에서, DAC를 갖는 FIR LUT는 2.3 GHZ/4(이는 약 575 Mbps임)의 비트 레이트, 디지털 속도로는 초당 2.3 기가샘플이고 아날로그 속도로는 1.15 GHz LPF를 제공할 수 있다. 전체적인 크기는 DAC가 추가된 FPGA에 의해 주로 좌우된다. 추가적으로, 4 x 2048 x 12 비트의 LUT들이 또한 이용될 수 있다. 이 실시예는 또한 완전한 프로그램 가능 능력을 제공한다.
세 번째 실시예에서, 저항 네트워크는 500 Mbps/4(이는 약 125 Mbps임)의 비트 레이트, 125 MHz × 4 개의 위상에 해당하는 디지털 속도 및 2 GHz(주로 TIA의 속도에 의해 좌우됨)의 아날로그 속도를 제공할 수 있다. 전체적인 크기는 4 x 80 개의 가중 저항들을 더한 FPGA에 의해 주로 좌우된다.
네 번째 실시예에서, 아날로그 컨볼루션 네트워크는 600 Mbps의 비트 레이트, 400 MHz/4(이는 약 150 MHz의 클록임)의 디지털 속도 및 600 Mbps/11(이는 약 라인 당 55 메가 천이(20 nsec 동작 부품)임)의 아날로그 속도를 제공한다. 전체적인 크기는 FPGA에 11 개의 아날로그 계단 함수 발생기를 더한 것에 주로 좌우된다.
도 40은 도 39의 아날로그 천이 응답 발생기 및 합산기에 대한 시험 결과들 의 일 실시예를 예시한다. 본 도면은 도 39 내의 TIA로부터 출력되는 것으로 나타나 있는 작은 그림으로 나타낸 신호를 확대 표시한 것이다.
도 41은 도 39의 아날로그 천이 응답 발생기 및 합계에 대한 스파이스(spice) 시뮬레이션의 일 실시예를 예시한다. 시뮬레이션한 다이오드들은 5 nsec의 회복 시간을 갖는데, 실제 다이오드는 대략 0.1 nsec의 회복 시간을 가질 수 있다. 이 시뮬레이션에서, 이상적인 연산 증폭기(ideal operational amplifier)가 사용되었는데, 실제 연산 증폭기는 -3 db 레벨(즉, 3 db 지점의 주파수)에 대해 약 3 GHz의 대역폭을 가진다. 시뮬레이션에 이용된 시퀀스는 10100111001011000111111이다.
도 42는 분해 후에 대응하는 상승 및 하강에 상응하는 결과의 일례를 예시한다. 이 도면은 도 41에 도시된 신호 천이들의 확대도이다.
도 43은 도 39의 천이 응답 발생기 및 합계에 대한 시험 결과들의 또 다른 실시예를 예시한다. 도면의 아래쪽 그래프는 위쪽 그래프 중의 좌상부에서 선택된 부분에 대한 확대도이다.
가상 디스크 드라이브는, 본 명세서에 설명된 다양한 측면들에 따라 구현될 경우, HDD 시스템 내의 어떠한 부품이라도 테스트되도록 할 수 있는 완벽한 설계 환경을 제공한다. HDD 시스템 내의 모든 실제 부품들이 이 가상 디스크 드라이브 내에서 이용 가능할 수도 있고, 전혀 이용 가능하지 않을 수도 있다. 어느 HDD 시스템 내에서 어떤 부품들이 이용 가능하게 되면(즉, 그 HDD 내의 집적 회로나 그 밖의 부품들이 이용 가능하게 되면), 그러한 집적 회로들이나 부품들은 가상 디스 크 드라이브 내에 장착될 수 있고, 그럼으로써, 상기 가상 디스크 드라이브는 일부의 실제 집적 회로들이나 부품들과, 다른 일부의 시뮬레이션된 집적 회로들이나 부품들을 포함할 수 있다. 이러한 가상 디스크 드라이브는 어떤 HDD 시스템의 개발이 그러한 HDD 시스템 내에 들어가는 하나 또는 그 이상의 실제 하드웨어 부품이 이용가능하게 되기 몇 달 전부터 수행될 수 있게 할 수 있다. 이는 특히 HDD 시스템이 개발 중에 있어서 그러한 HDD 시스템의 설계가 종래 기술 및 이전의 HDD 시스템으로부터 비교적 본질적인 차이를 가질 때에 효과적이다. 그러한 환경에서는, 그러한 새로운 HDD 시스템 내의 다양한 하위 시스템들의 상호 작용에 대한 자료가 많지 않을 것이며, 설계 과정에서 뛰어난 유연성을 허용하는 가상 디스크 드라이브는 매우 바람직한 것일 수 있다.
도 44는 HDD 시스템을 설계하기 위한 방법(4400)의 일 실시예를 예시한다. 블록(4410)에 나타난 바와 같이, 상기 방법(4400)은 한 HDD 시스템 내부의 저장 매체, 스핀들 모터 및 암 중에 적어도 하나의 동작을 시뮬레이션하는 것을 포함한다. 상기 방법(4400)은 블록(4420)에 나타내었듯이, 상기 HDD 시스템 내부의 읽기 채널 의 동작을 시뮬레이션하는 단계로 이어진다. 상기 방법(4400)은, 블록(4430)에 나타내었듯이, 상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하는 단계로 이어진다. 추가적으로, 상기 방법(4400)은, 블록(4440)에 나타내었듯이, 상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하는 단계를 수행한다.
HDD 시스템을 설계하기 위한 상기 방법(4400) 내에는, 블록(4450)에 나타난 바와 같이, 상기 HDD 시스템 내의 상기 저장 매체, 상기 스핀들 모터, 상기 암 중 의 적어도 하나와, 상기 읽기 채널 모듈 및 상기 컨트롤러 모듈을 시뮬레이션하면서 생성되는 시뮬레이션 데이터를 저장하는 단계가 포함된다. 만약 필요한 경우에는, 상기 방법(4400)은 서보 위치 시스템 데이터를 실시간으로 바로바로(on the fly) 생성하는 단계를 역시 포함할 수 있다. 상기 방법(4400)은 또한, 블록(4460)에 나타내었듯이, 사용자 인터페이스를 통해 상기 HDD 설계 시스템 내부의 적어도 하나의 동작 파라미터를 제어하는 단계를 포함할 수 있다.
본 발명은 지금까지 특정된 기능들의 수행 및 이들 사이의 관계들을 예시한 방법 단계들을 이용하여 위와 같이 설명되었다. 이러한 기능적인 구성 블록들 및 방법 단계들의 의미상의 경계 및 순서(boundaries and sequences)는 설명의 편의를 위해 임의적으로 설명되었다. 이러한 특정 기능들 및 이들 사이의 관계들이 적절하게 수행되는 한, 그와 다른 경계 및 순서도 정의될 수 있다. 그러한 어떠한 다른 경계 또는 순서들도 청구 범위에 기재된 발명의 영역 및 사상 내에 포함된다.
본 발명은 또한 몇몇 중요 기능들의 수행을 예시한 기능적인 구성 블록들을 이용하여 위와 같이 설명되었다. 이러한 구성 블록들의 의미상의 경계는 설명의 편의를 위해 임의적으로 정의되었다. 상기 중요 기능들이 적절히 수행되는 한, 이와 다른 경계도 정의될 수 있다. 유사하게, 순서도의 블록들도 역시 중요한 기능(functionality)을 예시하기 위해 임의적으로 정의된 것일 수 있다. 순서도 블록의 의미상의 경계들 및 순서는 다른 식으로 정의되었을 수도 있으며, 여전히 그러한 중요한 기능을 수행할 수 있을 것이다. 기능적인 구성 블록들과 순서도 블록들 및 순서들에 관한 그러한 다른 형태의 정의는, 따라서, 청구 범위에 기재된 발명의 영역 및 사상 내에 포함된다.
당해 기술 분야의 통상의 기술을 가진 자는 또한 이러한 기능적 구성 블록들 및 이 명세서에 있는 그 밖의 예시적인 블록들, 모듈 및 구성품은, 예시된 대로 구현되거나, 또는 개별 부품, 주문형 집적 회로(application specific integrate circuits, ASIC), 적절한 소프트웨어나 이와 유사한 것을 실행하는 프로세서들, 또는 이들의 조합들에 의해 구현될 수 있다.
더 나아가, 간략함과 이해를 돕기 위한 목적을 위해 상술한 실시예들과 같은 방식으로 상세하게 설명하였지만, 본 발명은 그러한 실시예들에 한정되지 않는다. 당해 기술 분야의 통상의 지식을 가진 자가 이해할 수 있듯이, 다른 형태의 실시예들도 본 청구 범위의 영역 내에서 벗어나지 않은 채로 본 발명의 사상으로부터 착안될 수 있을 것이다.
도 1은 디스크 드라이브 유닛의 일 실시예를 예시한다.
도 2는 디스크 컨트롤러를 포함하는 장치의 일 실시예를 예시한다.
도 3a는 핸드헬드 오디오 유닛의 일 실시예를 예시한다.
도 3b는 컴퓨터의 일 실시예를 예시한다.
도 3c는 무선 통신 장치의 일 실시예를 예시한다.
도 3d는 PDA(personal digital assistant)의 일 실시예를 예시한다.
도 3e는 랩탑 컴퓨터의 일 실시예를 예시한다.
도 4는 하드 디스크 드라이브(HDD)를 포함하는 시스템의 일 실시예를 예시한다.
도 5는 HDD 설계 시스템의 일 실시예를 예시한다.
도 6은 가상 디스크 드라이브를 포함하는 HDD 시스템의 일 실시예를 예시한다.
도 7은 HDD 설계 시스템의 다른 실시예를 예시한다.
도 8은 읽기 및 서보 이벤트 신호들의 일 실시예를 예시한다.
도 9는 각각 온트랙(on-track) 및 탐색 모드들에서 동작할 때 채택되는 신호들의 일 실시예를 예시한다.
도 10은 자기 펄스들에 의해 생성된 다양한 컨볼루셔널(convolutional) 신호들의 일 실시예를 예시한다.
도 11은 계단응답 기반 아키텍쳐의 일 실시예를 예시한다.
도 12는 펄스응답 기반 아키텍쳐의 일 실시예를 예시한다.
도 13은 잡음 및 왜곡 기초 모델의 일 실시예를 예시한다.
도 14는 전이 매체 잡음(transition media noise)의 제1 모델의 일 실시예를 예시한다.
도 15는 전이 매체 잡음의 제2 모델의 일 실시예를 예시한다.
도 16은 MRA(Magneto-Resistive Asymmetry)의 일 실시예를 예시한다.
도 17은 열잡음(thermal asperity)의 일 실시예를 예시한다.
도 18은 프리앰프(preamp) 왜곡의 일 실시예를 예시한다.
도 19는 DAC/FIR(Digital to Analog Converter/Finite Impulse Response Filter) 아키텍쳐의 일 실시예를 예시한다.
도 20은 FIR 계단응답 아키텍쳐의 일 실시예를 예시한다.
도 21은 FIR 펄스응답 아키텍쳐의 일 실시예를 예시한다.
도 22는 저항 네트워크 아키텍쳐의 일 실시예를 예시한다.
도 23은 계단(천이)응답 또는 펄스응답에 의해 출력을 형상화하는 접근 방식들의 일 실시예를 예시한다.
도 24는 DAC와 관련한 FIR 구현의 일 실시예를 예시한다.
도 25는 LMR(Longitudinal Magnetic Recording)을 채택하는 HDD 시스템들에 적합한 LUT(Look Up Table) 기반 구현의 일 실시예를 예시한다.
도 26, 도 27 및 도 28은 (예컨대, 도 25에 예시된 바와 같은) LMR에 적합한 것으로서 LUT 내용들의 실시예들을 각각 예시한다.
도 29는 PMR(Perpendicular Magnetic Recording)을 채택하는 HDD 시스템들에 적합한 LUT(Look Up Table) 기반 구현의 일 실시예를 예시한다.
도 30, 도 31 및 도 32는 (예컨대, 도 29에 예시된 바와 같은) PMR에 적합한 것으로서 LUT 내용들의 실시예들을 예시한다.
도 33은 저항 네트워크 시도의 일 실시예를 예시한다.
도 34는 저항 네트워크 구현들의 실시예들(변형1, 변형2)을 예시한다.
도 35는 FPGA와 관련한 저항 네트워크 구현의 일 실시예를 예시한다.
도 36은 LMR을 채택하는 HDD 시스템들에 대한 아날로그 컨볼루션(convolution)의 일 실시예를 예시한다.
도 37 및 도 38은 입력 스트림(stream) 분해의 실시예들을 예시한다.
도 39는 아날로그 천이 응답 발생기 및 합산의 일 실시예를 예시한다.
도 40은 도 39의 아날로그 천이 응답 발생기 및 합산기에 대한 시험 결과들의 일 실시예를 예시한다.
도 41은 도 39의 아날로그 천이 응답 발생기 및 합산기에 대한 스파이스(spice) 시뮬레이션의 일 실시예를 예시한다.
도 42는 분해 후에 대응하는 상승 및 하강의 일 실시예를 예시한다. 이 도면은 도 41에 도시된 신호 천이들의 확대도이다.
도 43은 도 39의 천이 응답 발생기 및 합산기에 대한 시험 결과들의 또 다른 실시예를 예시한다.
도 44는 HDD 시스템을 설계하기 위한 방법의 일 실시예를 예시한다.

Claims (10)

  1. 하드 디스크 드라이브(HDD) 설계 시스템에 있어서,
    HDD 시스템 내의 저장 매체, 스핀들 모터 및 암(arm) 중 적어도 하나의 동작을 시뮬레이션하도록 동작하는 가상 하드 디스크 어셈블리(VHDA);
    상기 HDD 시스템 내의 읽기 채널의 동작을 시뮬레이션하도록 동작하는 읽기 채널 모듈;
    상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하도록 동작하는 컨트롤러 모듈;
    상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하도록 동작하는 서보 위치 모듈; 및
    상기 HDD 설계 시스템 내의 적어도 하나의 동작 파라미터의 변경을 허용하도록 동작하는 사용자 인터페이스를 포함하는 하드 디스크 드라이브 설계 시스템.
  2. 청구항 1에 있어서,
    상기 HDD 설계 시스템은 실시간으로 바로바로 서보 위치 시스템 데이터를 발생시키도록 동작하는 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  3. 청구항 1에 있어서,
    상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나는, 상기 HDD 설 계 시스템 내에서, 적어도 부분적으로는 집적회로를 이용하여 구현되는 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  4. 청구항 1에 있어서,
    상기 VHDA, 상기 읽기 채널 모듈, 상기 컨트롤러 모듈 및 상기 서보 위치 모듈 중 적어도 하나는 FPGA(field programmable gate array)를 이용하여 상기 HDD 설계 시스템 내에서 시뮬레이션되는 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  5. 청구항 1에 있어서,
    상기 읽기 채널 모듈은 상기 HDD 설계 시스템 내에 읽기 채널 집적 회로로 구현되고,
    상기 서보 위치 모듈은 상기 HDD 설계 시스템 내에 실제의 서보 위치 시스템으로 구현된 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  6. 청구항 1에 있어서,
    상기 읽기 채널 모듈은 상기 HDD 설계 시스템 내에 읽기 채널 집적 회로로 구현되고,
    상기 컨트롤러 모듈은 상기 HDD 설계 시스템 내에 컨트롤러 집적 회로로 구현되고,
    상기 서보 위치 모듈은 상기 HDD 설계 시스템 내에 실제의 서보 위치 시스템으로 구현된 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  7. 하드 디스크 드라이브(HDD) 설계 시스템에 있어서,
    HDD 시스템 내의 저장 매체, 스핀들 모터, 프리앰프(preamp), 및 암 중 적어도 하나의 동작을 시뮬레이션하도록 동작하는 가상 하드 디스크 어셈블리(VHDA);
    상기 HDD 시스템 내의 읽기 채널의 동작을 시뮬레이션하도록 동작하는 읽기 채널 모듈;
    상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하도록 동작하는 컨트롤러 모듈;
    상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하도록 동작하는 서보 위치 모듈;
    상기 HDD 설계 시스템 내의 적어도 하나의 시뮬레이션되거나 실제인 부품에 대해 변경을 허용하도록 동작하는 사용자 인터페이스; 및
    상기 VHDA, 상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나에 의해 생성된 시뮬레이션 데이터를 저장하도록 동작하는 메모리 버퍼를 포함하고,
    상기 읽기 채널 모듈 및 상기 컨트롤러 모듈 중 적어도 하나는 상기 HDD 설계 시스템 내에서, 적어도 부분적으로는, 집적회로를 사용하여 구현되고,
    상기 메모리 버퍼는 적어도 1기가 바이트의 시뮬레이션 데이터를 저장하도록 동작하는 하드 디스크 드라이브 설계 시스템.
  8. 청구항 7에 있어서,
    상기 HDD 설계 시스템은 실시간으로 바로바로 서보 위치 시스템 데이터를 발생시키도록 동작하는 것을 특징으로 하는 하드 디스크 드라이브 설계 시스템.
  9. 하드 디스크 드라이브(HDD) 시스템을 설계하는 방법에 있어서,
    HDD 시스템 내의 저장 매체, 스핀들 모터 및 암 중 적어도 하나의 동작을 시뮬레이션하는 단계;
    상기 HDD 시스템 내의 읽기 채널의 동작을 시뮬레이션하는 단계;
    상기 HDD 시스템 내의 컨트롤러의 동작을 시뮬레이션하는 단계;
    상기 HDD 시스템 내의 서보 위치 시스템의 동작을 시뮬레이션하는 단계;
    상기 HDD 시스템 내의 저장 매체, 스핀들 모터 및 암 중 적어도 하나, 상기 읽기 채널 모듈, 및 상기 컨트롤러 모듈을 시뮬레이션할 때 생성된 시뮬레이션 데이터를 저장하는 단계; 및
    상기 HDD 설계 시스템 내의 적어도 하나의 동작 파라미터를 사용자 인터페이스를 통해 제어하는 단계를 포함하는 하드 디스크 드라이브 시스템 설계 방법.
  10. 청구항 9에 있어서,
    실시간으로 바로바로 서보 위치 시스템 데이터를 발생시키는 단계를 더 포함하는 것을 특징으로 하는 하드 디스크 드라이브 시스템 설계 방법.
KR1020070072779A 2006-07-20 2007-07-20 가상 디스크 드라이브 아키텍쳐 KR100913619B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US83253706P 2006-07-20 2006-07-20
US60/832,537 2006-07-20
US11/643,132 2006-12-21
US11/643,132 US20080021694A1 (en) 2006-07-20 2006-12-21 Virtual disk drive architecture

Publications (2)

Publication Number Publication Date
KR20080009002A true KR20080009002A (ko) 2008-01-24
KR100913619B1 KR100913619B1 (ko) 2009-08-26

Family

ID=38537829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070072779A KR100913619B1 (ko) 2006-07-20 2007-07-20 가상 디스크 드라이브 아키텍쳐

Country Status (4)

Country Link
US (1) US20080021694A1 (ko)
EP (1) EP1883010A3 (ko)
KR (1) KR100913619B1 (ko)
TW (1) TW200830102A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932907B (zh) * 2014-03-18 2018-06-26 神讯电脑(昆山)有限公司 硬盘镜像自动载入方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6135648A (en) * 1996-11-12 2000-10-24 Lsi Logic Corporation Hard disk rotational latency simulator
US6240543B1 (en) * 1998-12-01 2001-05-29 Narpat Bhandari Integration of manufacturing test of multiple system on a chip without substantial simulation
WO2000063893A1 (en) 1999-04-21 2000-10-26 Seagate Technology Llc Servo processor code evaluation using a virtual disc drive
JP2001033522A (ja) 1999-07-19 2001-02-09 Nec Eng Ltd 論理検証システム
JP2001202397A (ja) 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
US6490651B1 (en) * 2000-03-14 2002-12-03 Maxtor Corporation Host-based virtual disk drive for improving the performance of a hard disk drive's input/output
US7062423B1 (en) * 2001-08-22 2006-06-13 Marvell International Ltd. Method and apparatus for testing a system on a chip (SOC) integrated circuit comprising a hard disk controller and read channel
US7031902B1 (en) * 2002-02-28 2006-04-18 Western Digital Technologies, Inc. Presilicon disk model for design, development and validation
US7254525B2 (en) * 2002-10-17 2007-08-07 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for automated analysis of hard disk drive performance
US7555596B2 (en) * 2004-12-10 2009-06-30 Microsoft Corporation Systems and methods for attaching a virtual machine virtual hard disk to a host machine

Also Published As

Publication number Publication date
KR100913619B1 (ko) 2009-08-26
TW200830102A (en) 2008-07-16
EP1883010A2 (en) 2008-01-30
US20080021694A1 (en) 2008-01-24
EP1883010A3 (en) 2010-08-11

Similar Documents

Publication Publication Date Title
US7990642B2 (en) Systems and methods for storage channel testing
US20070047120A1 (en) Dibit extraction
JPH0676488A (ja) テスト・プロシージヤを遂行する回路
US20080192378A1 (en) Adaptive data-dependent noise prediction (ddnp)
US20080262643A1 (en) Defect detector for hard disk drive and methods for use therewith
KR100904648B1 (ko) 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러
CN101339770B (zh) 增加硬盘驱动器的记录密度的方法及其控制装置
US20080155351A1 (en) Method for combining multiple trace sources in an embedded system
KR100913619B1 (ko) 가상 디스크 드라이브 아키텍쳐
US20080005384A1 (en) Hard disk drive progressive channel interface
JPH08152975A (ja) ディスク装置及びデータ書込読出方法
CN101110094A (zh) 硬盘驱动器设计系统及其设计方法
US7848037B2 (en) Media defect removal in disk drive head testing
KR100855981B1 (ko) 각각의 헤드들에 대하여 기록 팩터를 별도로 설정하는디스크 드라이브의 기록 팩터 설정 방법 및 디스크드라이브
JP2006127635A (ja) 情報記憶装置
US8731899B2 (en) Adapter assembly for concurrent emulation of a native channel
Molaro et al. Tempo: Disk drive power consumption characterization and modeling
US20080266702A1 (en) System for measuring head spacing (fly height) in a disk drive
US7818629B2 (en) Multiple winner arbitration
US8174783B2 (en) Testing magnetic disk performance with a single slider simulating sliders of various disk drive systems
US7904645B2 (en) Formatting disk drive data using format field elements
KR100674977B1 (ko) 하드디스크 드라이브에서 리트라이 기록방법 및 그 장치
US7667910B2 (en) Magnetic disk drive, servo writer, self-servo writer and methods for use therewith
US7633697B2 (en) Magnetic disk drive, servo writer, self-servo writer and methods for use therewith
US8144413B2 (en) Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers

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
LAPS Lapse due to unpaid annual fee