KR100904648B1 - 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러 - Google Patents

다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러 Download PDF

Info

Publication number
KR100904648B1
KR100904648B1 KR1020070053970A KR20070053970A KR100904648B1 KR 100904648 B1 KR100904648 B1 KR 100904648B1 KR 1020070053970 A KR1020070053970 A KR 1020070053970A KR 20070053970 A KR20070053970 A KR 20070053970A KR 100904648 B1 KR100904648 B1 KR 100904648B1
Authority
KR
South Korea
Prior art keywords
processor
protocol
manager module
host
interfacing
Prior art date
Application number
KR1020070053970A
Other languages
English (en)
Other versions
KR20070115789A (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 KR20070115789A publication Critical patent/KR20070115789A/ko
Application granted granted Critical
Publication of KR100904648B1 publication Critical patent/KR100904648B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/061Improving I/O performance
    • 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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 다중의(multiple), 분산된(distributed) 프로세서들을 갖는 하드 디스크 컨트롤러에 관한 것이다. 하드 디스크 드라이브(HDD) 컨트롤러 내에서 복수의 컨트롤 루프들 각각을 서비스하기 위해, 분리되고 전용되는 프로세서가 제공되는 새로운 접근이 제시된다. 예를 들면, 제1 프로세서는 서보 컨트롤 루프를 서비스하기 위해 구현되고, 제2 프로세서는 채널 인터페이싱을 서비스하기 위해 구현되며, 제3 프로세서가 호스트 인터페이싱을 서비스하기 위해 구현된다. 실시 예들에 있어서, 채널 및 호스트 인터페이싱은 각각 디스크 매니저 모듈 및 호스트 매니저 모듈 각각의 내에서 구현되는 프로토콜 프로세서들을 사용하여 수행된다.

Description

다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러{HARD DISK CONTROLLER HAVING MULTIPLE, DISTRIBUTED PROCESSORS}
도 1은 디스크 드라이브 유닛의 일 실시 예를 보인 도면.
도 2는 디스크 컨트롤러를 포함하는 장치의 일 실시 예를 보인 도면.
도 3a는 휴대용(handheld) 오디오 유닛의 일 실시 예를 보인 도면.
도 3b는 컴퓨터의 일 실시 예를 보인 도면.
도 3c는 무선 통신 장치(wireless communication device)의 일 실시 예를 보인 도면.
도 3d는 개인 디지털 보조장치(Personal Digital Assistant;PDA)의 일 실시 예를 보인 도면.
도 3E는 랩탑 컴퓨터의 일 실시 예를 보인 도면.
도 4는 하드 디스크 드라이브(HDD) 인쇄 회로 기판 어셈블리(PCBA)를 포함하는 장치의 일 실시 예를 보인 도면.
도 5는 다중 컨트롤 루프들을 서비스하기 위해 하나의 프로세서를 사용하는 장치의 종래 기술의 일 실시 예를 보인 도면.
도 6은 다중 컨트롤 루프들을 서비스하기 위해 다중의(multiple), 분산된(distributed) 프로세서들을 사용하는 장치의 일 실시 예를 보인 도면.
도 7, 도 8 및 도 9는 다중 컨트롤 루프들을 서비스하기 위해 다중의, 분산된 프로세서들을 사용하는 하드 디스크 드라이브(HDD) 컨트롤러를 포함하는 장치의 다양한 실시 예들을 보인 도면.
도 10 및 도 11은 다중 컨트롤 루프들을 서비스하기 위해 다중의, 분배된 프로세서들을 사용하는 방법들의 다양한 실시 예들을 보인 도면.
본 발명은 하드 디스크 드라이브들(Hard Disk Drives;HDDs)에 관한 것으로서, 더욱 상세하게는 그러한 하드 디스크 드라이브들과 그들 각각의 컨트롤러들 내에서의 프로세싱 자원(processing resources)의 제공(provisioning)과 할당(allocation)에 관한 것이다.
알려진 바와 같이, 마그네틱 디스크 드라이브들(magnetic disk drives)과 같은 여러가지의 메모리 스토리지 장치들(memory storage devices)(예를 들면, 디스크 드라이브들(disk drives))은 직접적으로 또는 스토리지 에어리어 네트워크(Storage Area Network;SAN) 또는 네트워크 연결 스토리지(Network Attached Storage;NAS)와 같은 네트워크를 통하여 호스트 장치(host device)에 데이터 스토리지(data storage)를 제공하기 위해 사용된다. 전형적인 호스트 장치들은 데스크탑(desktop) 또는 랩탑(laptop) 컴퓨터와 같은 단독 설치 컴퓨터 시스템들(stand alone computer systems), 서버들과 같은 기업 스토리지 장치들(enterprise storage devices), 리던던트 어레이 독립 디스크들(Redundant Array of Independent Disks;RAID) 어레이들, 스토리지 라우터들(storage routers), 스토리지 스위치들(storage switches) 및 스토리지 디렉터들(storage directors), 그리고 비디오 게임 시스템들 및 디지털 비디오 레코더들과 같은 다른 소비자 장치들(consumer devices)을 포함한다. 이들 장치들은 효과적인 가격으로 높은 스토리지 용량을 제공한다.
종래의 HDD 시스템들 내에는, 동시에 동작하고 소정의 프로세싱 자원의 할당을 요구하는 몇 가지 시스템들이 있다. 종래의 HDD 시스템들에서, 전형적으로 하나의 프로세서가 이들 다양한 시스템들을 서비스하기 위한 노력으로 제공된다. 특히, 종래의 HDD 컨트롤러들은 다중의 하드 실시간 컨트롤 기능들(multiple hard real-time control functions)을 수행하기 위해 메인 프로세서(main processor)에 의존한다. 종래의 HDD 시스템들에 있어서, 수인되는(suffered) 전 시스템의 수행 또는 펌웨어 복잡성(firmware complexity)은 하나의 프로세서를 사용하여 이들 기능들의 전부를 수행하기 위해서 모색하는 이들 종래 기술의 구현에서 매우 증가된다.
종래 기술에서, 받아들일 수 있는(acceptable) 수행 또는 복잡성은 너무 커지게 되었고, 상태 기계들(state machines)은 실시간 동작들의 일부를 위해 그 하드웨어 내부로 부가된다. 쓰기 가능한 컨트롤 스토어들(writable control stores)은 어떤 경우들에 있어서는 프로그램 가능한 상태 기계(programmable state machine)로서 전형적으로 사용된다.
종래의 고성능(high-performance) HDD 컨트롤러들에 대해, 심지어 병렬 실행 자원(parallel execution resources)을 부가하는 것을 돕기 위해 제2 메인 프로세서가 매우 비싼 비용을 치르고(다른 단점들 중, 복잡성과 공간 소비(real estate consumption) 면에서) 종래의 기술에 종종 부가된다.
도 5는 다중 컨트롤 루프들을 서비스하기 위해 하나의 프로세서를 사용한 종래 장치(500)의 일 예를 도시한 도면이다. 상기 장치(500)는 종래의 HDD 컨트롤러 집적 회로(integrated circuit;IC)(560)를 포함한다. 호스트 인터페이스(502)는 호스트 인터페이스(502)와 버퍼(전형적으로 HDD 컨트롤러 IC(560) 외부의) 사이에서 버퍼 매니저 모듈(567)을 통하여 데이터를 이동할 수 있는 호스트 관리 모듈(570)로써 제어된다. 상기 HDD의 채널(531)은 프리앰프 인터페이스(preamp interface)(501)과 통신한다. 디스크 매니저 모듈(512)은 채널(531)을 제어하고 버퍼 매니저 모듈(567)을 통하여 채널(531)과 버퍼 사이에서 데이터를 이동한다. 버퍼 매니저 모듈(567)은 디램(DRAM)(전형적으로 HDD 컨트롤러 IC(560)외부의)에서 구현되는 공유 버퍼로의 억세스(access)를 조정한다.
이러한 종래의 장치(500) 내에서, 모든 펌웨어는 호스트 매니저 모듈(570)과 디스크 매니저 모듈(512)을 제어하는 하나의 프로세서(562) 상에서 실행한다. 프로세서(562)용 캐쉬 펌웨어(cached firmware)는 DRAM에서 저장될 수 있고 버퍼 매니저 모듈(567)을 통하여 억세스될 수 있다.
디스크 매니저 모듈(512)은 전형적으로 디스크 매니저 모듈(512) 및 채널 인터페이스(예를 들면, 채널(531) 및 프리앰프 인터페이스(501)) 내에서 하드웨어의 제어를 위해 프로그램가능한 상태 기계(programmable state machine)를 구현하기 위해 소형 쓰기 가능한 컨트롤 스토어(small writable control store)를 갖는다. 호스트 인터페이스(502)의 복잡성에 의존하여, 호스트 매니저(570)는 그것의 실시간 컨트롤 기능들을 실행하기 위해 상태 기계들을 가질 수 있거나 소형 쓰기 가능한 컨트롤 스토어를 가질 수 있다. 프로세서(562)는 동작의 바람직한 모드들(desired modes)에 의존하여 적절한 마이크로-프로그램들(micro-programs)을 상기 컨트롤 스토어(또는 스토어들)에 로드(load)한다.
이러한 실시 예를 고려할 때 보여질 수 있는 바와 같이, 그러한 HDD 컨트롤러 IC(560) 내에서 수행되어야만 하는 많은 기능들이 있다. 프로세서(562)에 의해 지원되는 이들 기능들의 모두를 요구함으로써, 어떤 기능들은 어떤 타임에서의 프로세싱 능력에 대하여는 여유가 부족하게(short-changed) 될 것이다. 예를 들면, 프로세서(562)는 확실히 이 예에서 하나의 기능 이상으로 지원할 필요가 있고, 프로세서(562)의 프로세싱 자원 및 능력(capabilities)의 대다수(또는 모두)가 그 기능들 중의 하나를 위하여 사용되고 있을 때, 그 때 상기 기능들 중 다른 것들은 잘 서비스되지 않을 것이다. 실시간 애플리케이션에서, 프로세싱 자원에 하나의 프로세서(562)를 제공하는 이러한 방식은 성능의 매우 큰 저하를 초래할 수 있다.
명백히, HDD 컨트롤러 장치 내에서 요구되는 다양한 기능성의 개선된 서비스가 수행될 수 있는 수단을 위한 기술에 있어서 필요성이 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 실시간 애플리케이션에서 프로세싱 자원에 하나의 프로세서를 제공하는 종래의 방식이 갖는 문제점을 해결할 수 있는 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러를 제공함에 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 HDD 컨트롤러 장치 내에서 요구되는 다양한 기능성의 개선된 서비스가 수행될 수 있는 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러를 제공함에 있다.
본 발명은 이하의 도면들의 간단한 설명, 발명의 상세한 설명 및 청구항들에서 더 설명되는 장치 및 동작 방법들에 관한 것이다.
본 발명의 일 양상에 따라,
하드 디스크 드라이브(hard disk drive) 내에서 서보 컨트롤 루프(servo control loop)를 통제(govern)할 수 있는 프로세서(processor);
호스트 인터페이싱(host interfacing)을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들(host interfacing protocol control functions)을 실행할 수 있는 제1 프로토콜 프로세서(first protocol processor)를 포함하는 호스트 매니저 모듈(host manager module); 및
상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱(channel interfacing)을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들(channel interfacing protocol control functions)을 실행할 수 있는 제2 프로토콜 프로세서(second protocol processor)를 포함하는 디스크 매니저 모듈(disk manager module)을 포함하는 장치가 제공된다.
바람직하게는, 상기 장치는 집적 회로(integrated circuit)이다.
바람직하게는, 상기 제2 프로토콜 프로세서는 상기 디스크 매니저 모듈이 제1 포맷 타입(first format type)을 갖는 상기 하드 디스크 드라이브 내에서의 디스크 및 제2 포맷 타입(second format type)을 갖는 적어도 하나의 부가적 디스크(additional disk)로의 채널 인터페이싱을 지원할 수 있게 하는 소프트 키 맵핑(soft key mapping)을 수행할 수 있다.
바람직하게는, 상기 제1 프로토콜 프로세서는 상기 하드 디스크 드라이브 내에서 호스트 인터페이스 컨트롤 루프(host interface control loop)를 통제하며;
상기 제2 프로토콜 프로세서는 상기 하드 디스크 드라이브 내에서 채널 인터페이스 컨트롤 루프(channel interface control loop)를 통제한다.
바람직하게는, 상기 프로세서, 상기 제1 프로토콜 프로세서, 및 상기 제2 프로토콜 프로세서는 동시(simultaneously) 및 실시간(real-time)으로 동작한다.
바람직하게는, 상기 프로세서는, 상기 프로세서가 상기 서보 컨트롤 루프를 통제하기 위해 총 프로세싱 능력(processing capability)의 미리 설정된(predetermined) 양보다 적게 사용할 때, 비-서보 펌웨어 기능들(non-servo firmware functions)을 백그라운드 프로세싱(background processing)으로 실행한 다.
바람직하게는, 상기 프로세서는 상기 서브 컨트롤 루프를 통제하기 위해 프로세싱 능력의 제1 부분(first portion)을 사용하고; 그리고 상기 프로세서는 비-서보 펌웨어 기능들을 실행하기 위해 프로세싱 능력의 제2 부분(second portion)을 사용한다.
바람직하게는, 상기 장치는 상기 프로세서, 상기 제1 프로토콜 프로세서 및 상기 제2 프로토콜 프로세서에 결합(couple)되는 공유 캐쉬(shared cache)를 더 포함하며, 여기서,
상기 공유 캐쉬는 상기 호스트 매니저 모듈의 상기 제1 프로토콜 프로세서에 직접 연결되고;
상기 공유 캐쉬는 상기 디스크 매니저 모듈의 상기 제2 프로토콜 프로세서에 직접 연결되고;
상기 프로세서는 상기 공유 캐쉬를 통하여 상기 제1 프로토콜 프로세서와 상기 제2 프로토콜 프로세서를 관리할 수 있다.
바람직하게는, 상기 장치는,
버퍼(buffer); 및
상기 버퍼에 결합되고 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디 스크 매니저 모듈 각각에 또한 결합되며, 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각의 상기 버퍼로의 공유 억세스(shared access)를 조정(arbitrate)하고 관리할 수 있는 버퍼 매니저 모듈(buffer manager module)을 더 포함한다.
바람직하게는, 상기 장치는,
버퍼; 및
상기 버퍼에 결합되고 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각에 또한 결합되며, 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각의 상기 버퍼로의 공유 억세스(shared access)를 조정하고 관리할 수 있는 버퍼 매니저 모듈(buffer manager module)을 더 포함하며, 여기서,
상기 호스트 매니저 모듈은 호스트 장치(host device)에 연결할 수 있는 호스트 인터페이스(host interface)에 결합되고;
상기 디스크 매니저 모듈은 상기 하드 디스크 드라이브의 디스크로 읽기 및 쓰기 억세스들(read and write accesses)이 수행되는 채널(channel)에 결합되고;
상기 호스트 매니저 모듈은 상기 버퍼 매니저 모듈을 통하여 상기 호스트 인터페이스와 상기 버퍼사이에서 제1 데이터(first data)를 이동할 수 있고;
상기 디스크 매니저 모듈은 상기 버퍼 매니저 모듈을 통하여 상기 채널과 상기 버퍼사이에서 제2 데이터(second data)를 이동할 수 있다.
본 발명의 일 양상에 따라, 제1 프로세서(first processor), 제2 프로세서(second processor), 및 제3 프로세서(third processor)를 포함하는 하드 디스크 드라이브 컨트롤러(hard disk drive controller)를 포함하는 장치가 제공되며, 여기서,
상기 제1 프로세서는 하드 디스크 드라이브의 서보 컨트롤 루프를 통제할 수 있고;
상기 제2 프로세서는 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있고;
상기 제3 프로세서는 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있다.
바람직하게는, 상기 장치는 집적 회로(integrated circuit)이다.
바람직하게는, 상기 하드 디스크 드라이브 컨트롤러는 채널 인터페이싱을 통제할 수 있는 디스크 매니저 모듈(disk manager module)을 포함하고;
상기 제3 프로세서는 상기 디스크 매니저 모듈 내에서 구현되고;
상기 제3 프로세서는 상기 디스크 매니저 모듈이 제1 포맷 타입(first format type)을 갖는 상기 하드 디스크 드라이브 내의 디스크 및 제2 포맷 타입(second format type)을 갖는 적어도 하나의 부가적 디스크(additional disk)로 의 채널 인터페이싱을 지원할 수 있게 하는 소프트 키 맵핑(soft key mapping)을 수행할 수 있다.
바람직하게는, 상기 하드 디스크 드라이브 컨트롤러는 호스트 인터페이싱을 통제할 수 있는 호스트 매니저 모듈을 포함하고;
상기 하드 디스크 드라이브 컨트롤러는 채널 인터페이싱을 통제할 수 있는 디스크 매니저 모듈을 포함하고;
상기 제2 프로세서는 상기 호스트 매니저 모듈 내에서 구현되고;
상기 제3 프로세서는 상기 디스크 매니저 모듈 내에서 구현되고;
상기 제2 프로세서는 상기 하드 디스크 드라이브 내에서 호스트 인터페이스 컨트롤 루프를 통제하고;
상기 제3 프로세서는 상기 하드 디스크 드라이브 내에서 채널 인터페이스 컨트롤 루프를 통제한다.
바람직하게는, 상기 제1 프로세서는 상기 서보 컨트롤 루프를 통제하기 위해 프로세싱 능력(processing capability)의 제1 부분(first portion)을 사용하고;
상기 제1 프로세서는 비-서보 펌웨어 기능들(non-servo firmware functions)을 실행하기 위해 프로세싱 능력의 제2 부분(second portion)을 사용한다.
바람직하게는, 상기 장치는 상기 제1 프로세서, 상기 제2 프로세서, 및 상기 제3 프로세서에 직접 결합되는 공유 캐쉬를 더 포함하며, 여기서,
상기 제1 프로세서는 상기 공유 캐쉬를 통하여 상기 제2 프로세서 및 상기 제3 프로세서를 관리할 수 있다.
바람직하게는, 상기 하드 디스크 드라이브 컨트롤러는 호스트 인터페이싱을 통제할 수 있는 호스트 매니저 모듈을 포함하고;
상기 하드 디스크 드라이브 컨트롤러는 채널 인터페이싱을 통제할 수 있는 디스크 매니저 모듈을 포함하고;
상기 제2 프로세서는 상기 호스트 매니저 모듈 내에서 구현되고;
상기 제3 프로세서는 상기 디스크 매니저 모듈 내에서 구현되고;
상기 하드 디스크 드라이브 컨트롤러는 버퍼를 포함하고;
상기 하드 디스크 드라이브 컨트롤러는 상기 버퍼에 결합되고 상기 제1 프로세서, 상기 호스트 매니저 모듈 및 상기 디스크 매니저 모듈 각각에 또한 결합되며, 상기 제1 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각의 상기 버퍼로의 공유 억세스를 조정하고 관리할 수 있는 버퍼 매니저 모듈을 포함하고;
상기 호스트 매니저 모듈은 호스트 장치(host device)에 연결될 수 있는 호스트 인터페이스에 결합되고;
상기 디스크 매니저 모듈은 상기 하드 디스크 드라이브의 디스크로의 읽기 및 쓰기 억세스들(read and write accesses)이 수행되는 채널에 결합되고;
상기 호스트 매니저 모듈은 상기 버퍼 매니저 모듈을 통하여 상기 호스트 인터페이스와 상기 버퍼 사이에서 제1 데이터(first data)를 이동할 수 있고;
상기 디스크 매니저 모듈은 상기 버퍼 매니저 모듈을 통하여 상기 채널과 상기 버퍼 사이에서 제2 데이터(second data)를 이동할 수 있다.
본 발명의 일 양상에 따라, 상기 장치는,
하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하며, 호스트 인터페이싱을 통제할 수 있는 호스트 매니저 모듈;
채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하며, 상기 하드 디스크 드라이브 내에서의 디스크로의 채널 인터페이싱을 통제할 수 있는 디스크 매니저 모듈;
상기 프로세서, 상기 제1 프로토콜 프로세서, 및 상기 제2 프로토콜 프로세서에 결합되는 공유 캐쉬(shared cache); 및
버퍼에 결합되고 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각에 또한 결합되며, 상기 프로세서, 상기 호스트 매니저 모듈, 및 상기 디스크 매니저 모듈 각각의 상기 버퍼로의 공유 억세스를 조정하고 관리할 수 있는 버퍼 매니저 모듈을 포함하며, 여기서,
상기 프로세서는 상기 공유 캐쉬를 통하여 상기 제1 프로토콜 프로세서 및 상기 제2 프로토콜 프로세서를 관리할 수 있다.
바람직하게는, 상기 장치는 집적 회로이다.
바람직하게는, 상기 프로세서는 상기 서보 컨트롤 루프를 통제하기 위해 프로세싱 능력의 제1 부분(first portion)을 사용하고;
상기 프로세서는 비-서보 펌웨어 기능들을 실행하기 위해 프로세싱 능력의 제2 부분(second portoin)을 사용한다.
본 발명의 다른 특징들 및 이점들은 첨부되는 도면을 참조하여 이하의 상세한 설명으로부터 명백해질 것이다.
도 1은 디스크 드라이브 유닛(disk drive unit, 100)의 일 실시 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 호스트 장치에서의 특정 애플리케이션(application) 및 구현(implementation)에 의존하여, 3600 분당회전(RPM), 4200 RPM, 4800 RPM, 5,400 RPM, 7,200 RPM, 10,000 RPM, 15,000 RPM(그러나, 더 크거나 또는 더 작은 속도들을 포함하는 다른 속도들이 마찬가지로 사용될 수 있다)과 같은 속도로 서보 모터(servo motor)(미도시)에 의해 회전되는 디스크(102)를 포함한다. 하나의 가능한 실시 예에서, 디스크(102)는 어떤 타입의 마그네틱 매체(magnetic medium)에 마그네틱 필드 변화로써 정보를 저장하는 마그네틱 디스크(magnetic disk)일 수 있다. 마그네틱 물질로 구성되거나 도포(coat)된 상기 매 체는 강성(rigid)이거나 비강성(non-rigid)일 수 있고, 이동가능(removable)하거나 이동불가(non-removable)일 수 있다.
디스크 드라이브 유닛(100)은 이동(translation), 회전(rotation) 또는 둘 다에 의해 상기 디스크(102)의 표면 위로 액튜에이터(actuator)(108)에 의해 이동되는 암(arm)(106)에 결합된 하나 또는 그 이상의 읽기/쓰기 헤드들(heads)(104)을 더 포함한다. 디스크 컨트롤러(disk controller, 130)는 상기 드라이브(drive)로 및 드라이브로부터 상기 읽기 및 쓰기 동작들을 제어하기 위해, 서보 모터의 속도와 액튜에이터(108)의 동작(motion)을 제어하기 위해, 그리고 상기 호스트 장치로 및 호스트 장치로부터 인터페이스를 제공하기 위해 포함된다.
도 2는 디스크 컨트롤러(130)를 포함하는 장치(200)의 일 예이다. 특히, 디스크 컨트롤러(130)는 읽기/쓰기 헤드들(104)을 통해 디스크(102)로 및 디스크(102)로부터 데이터를 읽고 쓰기 위해 읽기/쓰기 채널(read/write channel, 140)을 포함한다. 디스크 포맷터(disk formatter, 125)는 데이터의 포맷팅(formatting)을 제어하기 위해 포함되고 디스크(102)에 쓰인 데이터 및 디스크(102)로부터 읽힌 데이터의 흐름을 제어하는 클럭 신호들(clock signals) 및 다른 타이밍 신호들(timing signals)을 제공한다. 서보 포맷터(120)는 디스크(102)로부터 읽은 서보 컨트롤 데이터에 기초한 클럭 신호들과 다른 타이밍 신호들을 제공한다. 장치 컨트롤러들(device controllers, 105)은 액튜에이터(108) 및 상기 서보 모터 등과 같은 드라이브 장치들(109)의 동작을 제어한다. 호스트 인터페이스(150)는 호스트 장치(host device, 50)로부터 읽기 및 쓰기 명령들을 수신하고 호스트 인터페이스 프 로토콜(host interface protocol)에 대응되게 다른 컨트롤 정보를 따라 디스크(102)로부터 읽은 데이터를 전송한다. 일 실시 예에서, 상기 호스트 인터페이스 프로토콜은 SCSI, SATA, EIDE(enhanced integrated drive electronics), 이러한 목적을 위해 사용될 수 있는 공개 또는 독점의(open or proprietary) 여러 가지의 호스트 인터페이스 프로토콜들을 포함할 수 있다.
디스크 컨트롤러(130)는 프로세싱 모듈(processing module, 132) 및 메모리 모듈(memory module, 134)을 더 포함한다. 프로세싱 모듈(132)은 하나 또는 그 이상의 마이크로프로세서들(microprocessors), 마이크로-컨트롤러들(micro-controllers), 디지털 신호 프로세서들(digital signal processors), 마이크로컴퓨터, 중앙 처리 유닛(central processing units), 필드 프로그래머블 게이트 어레이들(field programmable gate arrays), 프로그래머블 논리 장치들(programmable logic devices), 상태 기계들(state machines), 논리 회로들(logic circuits), 아날로그 회로들(analog circuits), 디지털 회로들(digital circuits), 및/또는 메모리 모듈(134)에 저장된 동작 명령들에 기초한 신호(아날로그 및/또는 디지털)를 조작하는 어떤 장치들을 사용하여 구현될 수 있다. 프로세싱 모듈(132)이 두 개 또는 그 이상의 장치들로 구현될 때, 각 장치는 오류 여유 또는 리던던시(fault tolerance or redundancy)를 제공하기 위해 동일한 단계들(steps), 프로세서들(processors) 또는 기능들(functions)을 수행할 수 있다. 다르게는, 프로세싱 모듈(132)에 의해 수행되는 기능, 단계들 및 프로세스들은 더 큰 컴퓨터의 속도 및/또는 효율을 제공하기 위해 다른 장치들 사이에서 나누어질(split) 수 있다.
메모리 모듈(134)은 단일의 메모리 장치일 수도 있고 복수의 메모리 장치들일 수도 있다. 그러한 메모리 장치는 롬(ROM;Read-Only Memory), 램(RAM;Random Access Memory), 휘발성 메모리, 비휘발성 메모리, 에스램(SRAM;Static Random Access Memory), 디램(DRAM;Dynamic Random Access Memory), 플래쉬 메모리, 캐쉬 메모리, 및/또는 디지털 정보를 저장하는 임의의 장치일 수 있다. 상기 프로세싱 모듈(132)이 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 통해 그것의 기능들의 하나 또는 그 이상을 구현할 때, 대응되는 동작 명령들을 저장하는 상기 메모리 모듈(134)은 상기 상태 기계, 아날로그 회로, 디지털 회로, 및/또는 논리 회로를 포함하는 상기 회로의 내부에 내장되거나(embedded) 외부에 있을 수 있다. 나아가 상기 메모리 모듈(134)은 상기 단계들의 하나 또는 그 이상 또는 프로세스(process), 여기에 설명되는 방법 및/또는 기능에 대응될 수 있는 동작적 명령들을 저장하고, 상기 프로세싱 모듈(132)은 실행함에 주목된다.
디스크 컨트롤러(disk controller, 130)는 복수의 모듈들, 특히, 버스(136)와 버스(137)을 통하여 공동으로 상호연결된(interconnected) 장치 컨트롤러들(device controllers, 105), 프로세싱 모듈(132), 메모리 모듈(134), 읽기/쓰기 채널(140), 디스크 포맷터(125), 서보 포맷터(120) 및 호스트 인터페이스(150)를 포함한다. 이들 모듈들의 각각은 본 발명의 넓은 범위에 대응되게 하드웨어, 펌웨어, 소프트웨어 또는 그들의 조합으로 구현될 수 있다. 버스들(136 및 137)을 갖는 특정 버스 구조가 도 2에 보여지는 반면, 단일 버스 환경 또는 부가적인 데이터 버스들, 다양한 모듈들 사이의 직접적인 연결(connectivity)와 같은 추가적인 연 결(further connectivity)를 포함하는 다른 버스 구조들이 마찬가지로 다양한 실시 예들에 포함되는 상기 특징들 및 기능들을 구현하는 것이 가능하다.
하나의 가능한 실시 예에서, 하나 또는 그 이상의 디스크 컨트롤러(130) 모듈들은 SoC 집적 회로(System on Chip integrated circuit)의 부분으로 구현된다. 일 실시 예에서, 이러한 SoC 집적 회로는 프로토콜 컨버터들(protocol converters), 선형 블록 코드 인코딩 및 디코딩 모듈들(linear block code encoding and decoding modules) 등과 같은 부가적인 모듈들을 포함할 수 있는 디지털 부분(digital portion)과 파워 서플라이 등과 같이 장치 컨트롤러들(105) 및 선택적으로 부가되는 모듈들을 포함하는 아날로그 부분을 포함한다. 다른 실시 예에서, 디스크 컨트롤러(130)의 다양한 기능들 및 특징들은 디스크 컨트롤러(130)의 기능성(functionality)을 수행하기 위해 통신하고 결합되는 복수의 집적 회로 장치들로 구현된다.
상기 드라이브 유닛(100)이 제조될 때, 디스크 포맷터(125)는 상기 디스크(102)를 따라 동일한 반경 거리에서 대응되는 복수 개의 서보 어드레스 마크들(servo address marks)을 따라 복수 개의 서보 웨지들(servo wedges)을 쓴다. 상기 서보 어드레스 마크들은 읽기/쓰기 헤드들(104)을 통하여 상기 디스크(102)의 매체를 억세스할 때 사용되는 다양한 이벤트들(events)을 위한 "스타트 타임(start time)"을 트리거(trigger)하기 위한 타이밍 생성기(timing generator)에 의해 사용된다.
도 3a는 휴대용(handheld) 오디오 유닛(51)의 일 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 상기 휴대용 오디오 유닛(51)에 구현될 수 있다. 하나의 가능한 실시 예에서, 상기 디스크 드라이브 유닛(100)은 일반적인 스토리지(storage) 또는 MPEG(Motion Picture Expert Group) 오디오 레이어 3(MP3) 파일들 또는 WMA(Windows Media Architecture) 파일들과 같은 오디오 내용, 사용자에게 재생을 위한 MPEG4 파일들과 같은 비디오 내용, 및/또는 디지털 포맷으로 저장될 수 있는 임의의 다른 타입의 정보의 스토리지를 제공하기 위해, 내부에 결합되거나(incorporated) 다르게는 휴대용 오디오 유닛(51)에 의해 사용되는, 디스크(102)가 1.8" 또는 그 보다 더 작은 직경을 갖는, 스몰 폼 팩터 마그네틱 하드 디스크(small form factor magnetic hard disk)를 포함할 수 있다.
도 3b는 컴퓨터(52)의 일 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 상기 컴퓨터(52)에서 구현될 수 있다. 하나의 가능한 실시 예에서, 디스크 드라이브 유닛(100)은 디스크(102)가 1.8" 또는 그 보다 더 작은 직경을 갖는 스몰 폼 팩터 마그네틱 하드 디스크, 기업 스토리지 애플리케이션(enterprise storage application)과 같은 애플리케이션을 위한 2.5" 또는 3.5" 드라이브 또는 그 보다 더 큰 드라이브를 포함할 수 있다. 디스크 드라이브(100)은 내부에 결합되거나 디지털 포맷으로 임의의 타입의 정보용으로 범용 스토리지(general purpose storage)를 제공하기 위해 컴퓨터(52)에 의해 다르게 사용된다. 컴퓨터(52)는 데스크탑 컴퓨터일 수 있거나, 서버, RAID(Redundant Array of Independent Disk;RAID) 어레이, 스토리지 라우터(storage router), 에지 라우터(edge router), 스토리지 스위치(storage switch) 및/또는 스토리지 디렉터(storage director)와 같은 스토리지 어레이(storage array)에 부착되는 호스트 컴퓨터의 서버와 같은 기업 스토리지 장치들일 수 있다.
도 3c는 무선 통신 장치(53)의 일 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 상기 무선 장치(53)에 구현될 수 있다. 하나의 가능한 실시 예에서, 디스크 드라이브 유닛(100)은, 일반적인 스토리지 또는 MPEG 오디오 레이어 3(MP3)파일들 또는 WMA 파일들과 같은 오디오 내용, MPEG4 파일들, JPEG(Joint Photographic Expert Group) 파일들, 비트맵 파일들 및 인티그레이티드 카메라(integrated camera)에 의해 캡쳐되거나 상기 무선 통신 장치(53)로 다운로드될 수 있는 다른 그래픽 파일들로 저장되는 파일들, 이메일들, 웹페이지 정보 및 인터넷으로부터 다운로드된 다른 정보, 어드레스 북 정보(address book information)와 같은 비디오 내용, 및/또는 디지털 포맷으로 저장될 수 있는 임의의 다른 타입의 정보의 스토리지를 제공하기 위해, 내부에 결합되거나 다르게 무선 통신 장치(53)에 의해 사용되는, 디스크(102)가 1.8" 또는 그 보다 더 작은 직경을 갖는, 스몰 폼 팩터 마그네틱 하드 디스크를 포함할 수 있다.
하나의 가능한 실시 예에서, 무선 통신 장치(53)는 셀룰러, 개인 통신 서비스(presonal communications service;PCS), 일반적인 패킷 라디오 서비스(General Packet Radio Service;GPRS), 모바일 통신용 글로벌 시스템(Global System for Mobile communications;GSM), 및 집적 디지털 인핸스드 네트워크(Integrated Digital Enhanced Network;iDEN)과 같은 무선 전화 네트워크(wireless telephone network), 또는 전화 요청(telephone calls)을 송신 및 수신할 수 있는 다른 무선 통신 네트워크를 통하여 통신할 수 있다. 나아가, 무선 통신 장치(53)는 이메일에 억세스하고, 내용을 다운로드하고, 웹사이트들에 억세스하고 스티밍 오디오(steaming audio) 및/또는 비디오 프로그래밍을 제공하기 위해 인터넷을 통하여 통신할 수 있다. 이러한 방법으로, 무선 통신 장치(53)는 전화 요청(telephone calls), 이메일과 같은 텍스트 메시지, 단문 메시지 서비스(Short Message Service;SMS) 메시지들, 서류들, 오디오 파일들, 비디오 파일들, 이미지들 및 다른 그래픽들과 같은 첨부(attachments)를 포함할 수 있는 페이지들 및 다른 데이터 메시지들을 배치하고 수신할 수 있다.
도 3d는 PDA(Personal Digital Assistant, 54)의 일 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 상기 PDA(54)에서 구현될 수 있다. 하나의 가능한 실시 예에서, 디스크 드라이브 유닛(100)은 일반적인 스토리지 또는 MPEG 오디오 레이어 3(MP3) 파일들 또는 WMA 파일들과 같은 오디오 내용, MPEG4 파일들, JPEG 파일들, 비트맵 파일들 및 다른 그래픽 포맷들에서 저장되는 파일들과 같은 비디오 내용, 이메일들, 웹페이지 정보와 인터넷으로부터 다운로드되는 다른 정보, 어드레스 북 정보, 및/또는 디지털 포맷으로 저장될 수 있는 임의의 다른 타입의 정보의 스토리지를 제공하기 위해, 내부에 결합되거나 다르게는 PDA(54)에 의해 사용되는, 디스크(102)가 1.8" 또는 그 보다 더 작은 직경을 갖는 스몰 폼 팩터 마그네틱 하드 디스크를 포함할 수 있다.
도 3e는 랩탑 컴퓨터(55)의 일 예를 보인 도면이다. 특히, 디스크 드라이브 유닛(100)은 상기 랩탑 컴퓨터(55)에 구현될 수 있다. 하나의 가능한 실시 예에서, 디스크 드라이브 유닛(100)은 디스크(102)가 1.8"인치 또는 그보다 더 작거나, 2.5" 드라이브를 갖는 스몰 폼 팩터 마그네틱 하드 디스크를 포함할 수 있다. 디스크 드라이브(100)는 내부에 결합되거나 디지털 포맷으로 임의의 타입의 정보용으로 범용 스토리지를 제공하기 위해 랩탑 컴퓨터(52)에 의해 다르게 사용된다.
어떤 관점에서는, 본 발명의 다양한 양상들은 분산된(distributed), 다중의 프로세서들을 사용하여 HDD 컨트롤러의 실시간 펌웨어 요구들의 더 나은 및/또는 최적의 할당을 위하여 제공할 수 있다. 어떤 실시 예들에 있어서, 세 개의 다른 프로세서들은 그들 각각이 적합하게 그것의 각각의 요구되는 기능들을 가장 효율적으로 수행할 수 있는 정도의 상기 요구되는 프로세싱 자원(required processing resources)의 효율적인 구현을 제공하기 위해 사용된다. 분산된, 다중 프로세서들을 사용함에 의해, 상기 프로세서들의 어느 것도 압도되지 않아 그것의 규정된 동작들을 빈약하게 수행할 수 없다. 더구나, 이러한 분산된, 다중의 프로세서 구현 때문에, 상기 요구되는 프로세싱 동작들의 각각은 상기 요구되는 기능들의 각각이 효율적으로 수행될 수 있는 정도의 충분한 프로세싱 자원들이 제공된다.
일반적으로 말하자면, 상기 HDD 컨트롤러 시스템은 병렬 실행(parallel execution)을 요구하는 세 개의 메인 하드 실시간 기능들:(1) 서보 컨트롤 루프(루프들);(2) 호스트 인터페이스 저-레벨 프로토콜; 및 (3) 채널 인터페이스 저-레벨 프로토콜을 갖는다. 종래의 시스템들을 고려할 때 보여질 수 있는 바와 같이, 종래의 컨트롤러들은 성능(performance)을 타협하거나, 펌웨어 복잡성(firmware complexity)을 크게 증가시키고, 또는 수용 가능한 기능성(acceptable functionality)을 성취하기 위해 큰 용량의 하드웨어를 부가했다. 이들 실시간 기능들은 더 하여 수행되어져야만 하는 다양한 백그라운드 펌웨어 동작들(background firmware operations)이다. 어떤 실시 예들에 있어서, 상기 서보 컨트롤 루프들 및 상기 백그라운드 펌웨어(background firmware)는 중앙 집중된(centralized), 범용 프로세서(general purpose processor)에 할당된다. 상기 호스트 및 채널 인터페이스 저-레벨 프로토콜들은 이들 인터페이스들의 실시간 요구들을 위한 진정한 병렬 실행을 달성하기 위해 그들 자신의 작은 프로세서들에 할당된다.
여기에 설명된 어떤 실시 예들에 있어서, HDD 컨트롤러(바람직하다면 하나의 IC로 구현될 수 있는)는 상기 시스템의 하드 실시간 요구들의 더 많이 개선된 분할(partition)을 위해, 다중의, 분산된 프로세서 배열(multiple, distributed processor arrangement)을 사용한다. 어떤 실시 예들에 있어서는, 상기 HDD 컨트롤러는 상기 시스템의 하드 실시간 요구들을 분할하기 위해 세 개의 프로세서들을 사용한다.
전형적으로, 종래의 컨트롤러들은 하나 또는 두 개의 작은 쓰기 가능한 컨트롤 스토어들에 의해 지원되는 하나 또는 기껏해야 두 개의 범용 프로세서들을 사용한다. 여기에서 설명되는 다양한 실시 예들에서, 중앙의 범용 프로세서는 상기 서보 실시간 펌웨어(servo real-time firmware)(예를 들면, 컨트롤 루프(들)와 관련되는 상기 서보) 및 그들 각각의 하드 실시간 기능들을 실행할 수 있는 작은 호스트(small host) 및 디스크 프로토콜 프로세서들(disk protocol processors)에 의해 지원되는 거의 모든 다른 시스템 펌웨어(system firmware)를 위하여 구현될 수 있 다. 이러한 다중의, 분산된 프로세서 배열은 종래 기술에서 발견되는 것과 비교될 때, 더 나은 프로세싱 자원의 할당이고, 상기 HDD 시스템 내에서 수행하기 위해 요구되는 다양한 기능들 각각은, 다른 기능들의 일부가 상대적으로 더 많은 양의 프로세싱 능력을 요구하는 것과 같은 그러한 방법으로 동작해야 하는 여유가 없는(short-changed) 상황에 있지 않다.
도 4는 하드 디스크 드라이브(HDD) 인쇄 회로 기판 어셈플리(Printed Circuit Board Assembly;PCBA)를 포함하는 장치(400)의 일 예를 보인 도면이다. 상기 장치(400)는 몇몇의 다른 집적 회로들(ICs) 및 상기 호스트 컴퓨터(470)와 통신할 수 있는 HDD 컨트롤러 IC(431)를 포함한다. 프리앰프 인터페이스(preamp interface, 401)는 마그네틱 헤드 어셈블리 상의 프리앰프(preamp) IC에 플렉스 회로(flex circuit)를 통하여 연결되도록 구현될 수 있다. 상기 호스트 인터페이스(402)는 통상적으로 컨넥터/케이블 어셈블리(connector/cable assembly)를 통하여 상기 호스트 컴퓨터(470)에 연결된다. 상기 HDD 컨트롤러 IC(431)는 DRAM 및 플래쉬 ROM과 같은 메모리 장치들에서의 위치들(locations)을 읽고 쓸 수 있다. 상기 DRAM 및 플래쉬 ROM은 ICs 즉 DRAM IC(463) 및 플래쉬 IC(465)로 보여진다. 상기 HDD 컨트롤러 IC(431)는 또한 상기 디스크 드라이브 모터들을 관리하기 위해 모터 컨트롤러 IC(467)와의 통신을 지원할 수 있다.
도 5의 종래의 장치(500)는 관련 기술의 설명 부분에서 설명되었다. 그 도면에서 보여질 수 있는 바와 같이, 프로세싱 능력 제공에 대한 종래의 접근은 HDD 컨트롤러 IC(550) 내에 하나의 프로세서를 사용한다.
도 6은 다중의 컨트롤 루프들을 서비스하기 위해 다중의, 분산된 프로세서들을 사용하는 장치(600)의 일 실시 예이다. 도면의 위에서부터, 상기 장치(600)는 세 개의 분리된 기능성 그룹들 각각을 서비스하기 위해 세 개의 별개의 프로세서들을 사용한다. 이러한 방법으로, 다중의, 분산된 프로세서들을 사용함으로써, 하나의 프로세서가 상기 다양한 동작들의 타입들 각각을 서비스하기 위해 전담되는 것과 같이, 그들 중의 어떤 것도 빈약하게 지원받거나 적절한 프로세싱 능력 없도록 되지 않는다.
상기 장치(600)는 HDD 컨트롤러(660)를 포함한다. 상기 HDD 컨트롤러(660)는 바람직하게는 IC(659)로 구현될 수 있다. 상기 HDD 컨트롤러(660)는 어떤 실시 예들에서의 중앙 집중된(centralized), 범용 타입 프로세서로 구현될 수 있는 프로세서(662), 디스크 매니저 모듈(610), 및 호스트 매니저 모듈(670)을 포함한다.
상기 프로세서(662)는 참조번호 663에 보여진 것과 같이 서보 컨트롤 루프와 관련된 명령들을 지원하고 실행하는 데 전담된다. 상기 프로세서(662)가 충분하게 이용가능한 프로세싱 자원을 가질 때 및 가진다면, 그것은 (예를 들면, 비-서보 펌웨어로 보여질 수 있는 백그라운드 프로세서들과 같이) "폴리시(policy)" 펌웨어(664)를 서비스할 수 있다.
상기 호스트 매니저 모듈(670) 및 상기 디스크 매니저 모듈(610)은 그들의 내장된(embedded) 개개의 프로토콜 프로세서들, 즉, 상기 디스크 매니저 모듈(610) 내에서의 상기 프로토콜 프로세서(614)와 상기 호스트 매니저 모듈(670) 내에서의 상기 프로토콜 프로세서(672)를 보인다. 상기 디스크 매니저 모듈 내에서의 상기 프로토콜 프로세서(614)는 참조 번호 616에 보여지는 것과 같이, 채널 인터페이싱 컨트롤 루프와 관련된 명령들을 지원하고 실행하도록 구현될 수 있고, 그것은 상기 채널 인터페이스(601)에 대응된다. 상기 호스트 매니저 모듈(670) 내에서의 상기 프로토콜 프로세서(672)는 참조 번호 676에 보여지는 바와 같이 호스트 인터페이싱 컨트롤 루프와 관련된 명령들을 지원하고 실행하기 위해 구현될 수 있고, 그것은 상기 호스트 인터페이스(602)에 대응된다.
상기 프로세서(662)는 상기 디스크 매니저 모듈(610) 내에서의 상기 프로토콜 프로세서(614) 및 그러한 각각의 프로토콜 프로세서의 레지스터 및 메모리 스페이스를 통하여 상기 호스트 매니저 모듈(670) 내에서의 상기 프로토콜 프로세서(672) 각각에 억세스할 수 있다. 어떤 실시 예들에서, 상기 프로세서(662)는 그에 의해 코히어런시(coherency)를 제공하는 상기 디스크 매니저 모듈(610) 내에서의 상기 프로토콜 프로세서(614)와 상기 호스트 매니저 모듈(670) 내에서의 상기 프로토콜 프로세서(672) 각각의 직접적인 파이프 억세스(direct pipe access)를 수행할 수 있다.
이 다이어그램에서 보여질 수 있는 바와 같이, 분산된 접근(distributed approach)은 상기 다양한 컨트롤 루프들 각각이 그것의 자신의 전담된 프로세서를 갖는 것으로 만들어진다. 이러한 방식으로, 이들 다양한 컨트롤 루프들의 각각이 충분한 프로세싱 자원들을 제공받을 것이고, 이들 프로세싱 자원들은 늘 상기 각각의 컨트롤 루프를 서비스하는 데 이용될 것이다(각 프로세서는 다중 컨트롤 루프들과 경쟁하지 않거나 다중 컨트롤 루프들을 서비스하려고 시도하지 않는 것과 같이 ).
도 7, 도 8 및 도 9는 다중 컨트롤 루프들을 서비스하기 위해 다중, 분산된 프로세서들을 사용하는 하드 디스크 드라이브(HDD) 컨트롤러를 포함하는 장치의 다양한 실시 예를 나타내는 도면이다.
도 7의 장치(700)를 참조하면, 상기 장치(700)는 HDD 컨트롤러(760)를 포함한다(하나의 IC로 구현될 수 있는 것이 바람직하다). 호스트 매니저 모듈(770) 및 디스크 매니저 모듈(712)은 그들의 내장된 개개의 프로토콜 프로세서들, 즉, 상기 디스크 매니저 모듈(712) 내에서의 상기 디스크 프로토콜 프로세서(714) 및 상기 호스트 매니저 모듈(770) 내에서의 상기 호스트 프로토콜 프로세서(772)를 보여준다. 프로세서간 통신(inter-processor communication)을 촉진하기 위해, 공유 데이터 캐쉬(764)가 상기 장치(700) 내에 포함된다. 상기 3개의 프로세서들 각각(중앙 집중된, 범용 프로세서(762), 디스크 프로토콜 프로세서(714), 및 호스트 프로토콜 프로세서(772))는 상기 두 개의 프로토콜 프로세서들(디스크 프로토콜 프로세서(714) 및 상기 호스트 프로토콜 프로세서(772))에 의해 수행되는 실시간 기능들을 관리하도록 돕기 위해, (상기 버퍼에 저장된) 공유 데이터 구조들(shared data structures)을 읽고 쓸 수 있다. 상기 공유 데이터 캐쉬(764)는 이들 공유 억세스들의 하드웨어-인포스드 코히어런시(hardware-enforced coherency)를 위해 제공한다.
상기 호스트 인터페이스(702)는 버퍼 매니저 모듈(767)을 통하여 상기 호스트 인터페이스(702) 및 버퍼(790) 사이에서 데이터를 이동할 수 있는 상기 호스트 매니저 모듈로써 제어된다. 상기 디스크 매니저 모듈(712)은 결국 상기 채널 인터페이스(701)에 결합되는 여러 다양한 성분들(components)을 제어하고 상기 버퍼 매니저 모듈(767)을 통하여 상기 채널과 상기 버퍼(790) 사이에서 데이터를 이동한다. 상기 버퍼 매니저 모듈(767)은 상기 공유 버퍼(790)로의 억세스를 조정하고, 그것은 DRAM에서 구현될 수 있다.
상기 호스트 매니저 모듈(770)은 또한 상기 호스트 인터페이스(702)를 통하여 다양한 타입들의 호스트들과 인터페이싱할 수 있게 하고 수행할 수 있는 호스트 개별 모듈(host personality module, 776)을 포함한다. 상기 호스트 매니저 모듈(770) 내에 구현된 상기 호스트 프로토콜 프로세서(772)는 상기 호스트 개별 모듈(776)이 호스트 호환성 있는 인터페이스의 하나의 타입 이상을 에뮬레이트(emulate)하도록 허락하는 소프트 키 맵핑(soft key mapping)을 지원할 수 있다. 예를 들어, 거기에서 사용되는 상기 소프트 키 맵핑은 상기 호스트 개별 모듈(776)이 소프트 키(soft key)가 사용되는 것에 의존하여, 호스트 장치의 제1 타입(first type)과 적절하게 인터페이스하고 호스트 장치의 제2 타입(second type)과 적절하게 인터페이스하도록 허락한다. 이러한 방식으로, 하나의 하드웨어는 광범위한 플랫폼들(flatforms)을 걸쳐서(across) 사용될 수 있다.
호스트 선입 선출(First-In/First-Out;FIFO) 버퍼(774)는 또한 상기 호스트 매니저 모듈(770) 내에서 구현될 수 있고, 그것은 상기 호스트 개별 모듈(776)과 상호작용(interact)한다. 상기 호스트 FIFO(774)는, 상기 호스트 매니저 모듈(770)이 상기 호스트 개별 모듈(776)과 상기 호스트 FIFO(774)를 경유하고 상기 버퍼 매 니저 모듈(767)을 통하여 상기 호스트 인터페이스(702)와 상기 버퍼(790) 사이에서 데이터를 이동할 수 있다는 점에서 위에서 설명된 바와 같은 방식으로, 상기 버퍼 매니저(767)와 인터페이스한다.
상기 디스크 매니저 모듈(712)은 또한 상기 서보 컨트롤 루프 내에서의 실행을 위하여 상기 적절한 포맷으로 커맨드들(commands)과 기능들(functions)을 포맷할 수 있는 서보 포맷터 모듈(servo formatter module, 731)을 포함하도록 구현될 수 있다. 상기 디스크 매니저 모듈(712)은 또한 상기 버퍼 매니저 모듈(767)과 인터페이스할 수 있는 디스크 데이터경로 모듈(disk datapath module, 736)을 포함한다. 상기 디스크 데이터경로 모듈(736)은 엔덱1(endec1, 737)로 지시된 변조 인코딩/디코딩(modulation encoding/decoding)을 수행할 수 있다. 에러 교정 코드(Error Correction Code;ECC)(735)는 디스크 쓰기 프로세스들(disk write processes) 동안 그리고 디스크 포맷터 모듈(734)에 위치하는 ECC 심볼 제너레이터(ECC symbol generator)를 가지고 인코딩된다. 바람직하다면, 상기 ECC(735)는 두 가지 스텝 프로세스:(1) 상기 디스크 포맷터 모듈(734)에 위치하는 신드롬 제너레이터(syndrome generator)에서 디스크가 읽는 동안 신드롬들(syndromes)이 생성되고 그 때, (2) 상기 에러 교정이 상기 디스크 데이터 경로 모듈(736)에서의 온-더-플라이(on-the-fly) ECC 컴퓨터에서 수행되는 프로세스로 디코딩될 수 있다. 상기 엔덱1(737)은 상기 엔텍1(737)이 디스크 읽기 및 쓰기 억세스들이 수행되는 각각의 채널로부터 상기 ECC의 리버스 사이드(reverse side)에 상기 변조 인코딩/디코딩을 수행할 수 있다는 점에서, 리버스-ECC 변조 ENDEC으로써 보여질 수 있다. 이와 같이 함에 있어, 에러 진행(error propagation)은 바람직하게 감소될 수 있거나, 완전히 제거될 수 있다. 상기 ECC 심벌들의 리버스 ECC 인코딩이 부담될 수 있고 어떤 관점에서는 비능률적으로 비용이 소모될 수 있으므로 엔덱2(endec2)에 의해 지시되는 상기 변조 인코딩/디코딩이 상기 ECC(그리고 리던던시 비트들을 생성한 상기 엔덱1)를 인코딩하기 위해 사용된다.
상기 디스크 매니저 모듈(712) 내에서 구현되는 상기 디스크 포맷터 모듈(734)은 쓰기 경로를 통하여 상기 디스크로 쓰여지는 정보를 위한 적절한 포맷팅 및 읽기 경로를 통해 상기 디스크로부터 읽혀지는 정보의 디-포맷팅(de-formatting)을 수행할 수 있다.
엔덱2에 따라 보여지는 것과 같이, 상기 디스크 포맷터 모듈(735)로부터 상기 디스크 내의 쓰기를 위한 경로는 상기 변조 인코딩을 수행하는 인코더(716)를 통하여 처음에 패싱되는 것으로써 보여진다. 상기 인코딩된 정보(encoded information)는 출력이, 아날로그 변환으로의 디지털을 포함하는 임의의 다양한 아날로그 프로세싱 기능들, 스케일링(예를 들면, 이득 또는 감쇠), 디지털 필터링(digital filtering)(연속적인 타임 도메인으로 변환하기 이전의), 연속적인 타임 필터링(연속적인 타임 도메인으로 변환한 후의), 또는 신호를 상기 채널 인터페이스(701)와 호환 가능한 포맷으로 컴포트(comport)하기 위해 요구되는 다른 신호 프로세싱 기능들을 수행할 수 있는 아날로그 프론트 엔드(Analog Front End;AFE)(731)에 결국에는 결합되는 쓰기 프리컴펀세이션 모듈(write precompensation module, 718)에 결합되는, 패리티 인코더(parity encoder, 717)에 그 때 제공된다. 상기 AFE(731)은 상기 읽기 헤드 어셈블리(read head assembly)의 부분으로써 종종 구현되는 프리앰프(preamp, 732)를 또한 포함한다.
상기 디스크로부터 읽기를 위한 경로는 상기 디스크에서 쓰기 경로의 역방향(converse)이다. 예를 들면, 상기 채널 인터페이스(701)로부터 올 때, 상기 신호는 초기에 상기 AFE(731)로 제공되고, 상기 쓰기 과정 내에서의 많은 상기 신호 프로세싱 동작들의 역 방향이 수행된다. 예를 들면, 다른 신호 프로세싱 동작들 중에서 아날로그에서 디지털 변환, 스케일링(scaling), 및/또는 필터링(filtering)이 수행된다.
읽기 프로세스 동안 상기 AFE(731)로부터 패싱(passing) 후에, 상기 신호는 한정된 임펄스 응답 필터(FIR, 728), 상기 디지털 신호 내에서 상기 정보의 신뢰성(reliability)을 나타내는 소프트 출력(soft output)을 결정하기 위하여 소프트 출력 비터비 알고리즘(Soft Output Viterbi Algorithm;SOVA)를 이용할 수 있는 비터비 디코더(Viterbi decoder, 727)를 통하여 패스한다. 예를 들어, 상기 비터비 디코더(727)는 그것에 제공되는 디지털 신호가 신뢰성이 높은지 아닌지를 결정할 수 있다. 더구나, 상기 비터비 디코더(727)는 쓰기 경로에서 (패리티 인코더(717)에 의해 수행되는) 상기 패리티 인코딩 처리에 응답하여 상기 읽기 경로에서의 패리티 디코딩 처리를 수행하는 것으로써 보여질 수 있다. 이러한 비터비 디코더(727)로부터의 출력은 상기 인코더(716)과 같은 코드, 즉, 엔덱2(endec2)로 보여지는 제2 ECC를 사용하는 디코더(726)로 제공된다. 이러한 디코더(762)로부터의 출력은 상기 디스크 포맷터 모듈(734)에 제공된다.
여기에서 설명된 다른 실시 예들과 함께 도 7의 실시 예에 대하여, 다중의, 분산된 프로세서들을 사용하는 발명의 다양한 양상들이 HDD 컨트롤러(760) 내에서의 다양한 모듈들이 2개 또는 그 이상의 회로 실시 예(예를 들면, 여기에서는 상기 HDD 컨트롤러(760)가 인터페이스를 통하여 결합되는 컨트롤러 회로와 채널 회로의 두 개의 집적 회로 실시 예로 나눠진다)로써 분리되고 구현되는 실시 예들 내에서 또한 구현될 수 있다는 것이 또한 주목된다. 바꾸어 말하면, 여기에서 설명되는 다양한 기능성들은 또한 상기 디스크 매니저 동작들이 하나의 회로 내에서 구현되고 상기 호스트 매니저 동작들이 또 다른 회로 내에서 구현되는 실시 예들에 적용될 수 있다.
도 8의 장치(800)를 참조하면, 이 실시 예는 두 개의 작은 프로세서들(예를 들면, 프로토콜 프로세서들)이 전형적으로 종래의 호스트 매니저와 디스크 매니저 모듈 내에서 사용되는 쓰기 가능한 컨트롤 스토어들을 대신하여 구현되도록 제공한다. 예를 들어, 디스크 매니저 모듈(812)은 디스크 프로토콜 프로세서(814)를 포함하고, 호스트 매니저 모듈(870)는 호스트 프로토콜 프로세서(872)를 포함한다.
상기 디스크 프로토콜 프로세서(814) 및 상기 호스트 프로토콜 프로세서(872)는 그들 각자의 인터페이스 프로토콜들의 하드 실시간 컨트롤 기능들 ,즉, 채널(channel, 831)과 프리앰프 인터페이스(preamp interface, 801)와 호스트 인터페이스(host interface, 802)를 통하여 상기 디스크 인터페이스에 대하여 실행하는 데 전담된다. 프로세서(862)가 서보 하드 실시간 컨트롤 기능들 및 백그라운드 동작들(예를 들면, 백그라운드 관련 펌웨어 관련 기능들(background related firmware releted functions))을 실행하도록 허락하는 상기 디스크 프로토콜 프로세서(814) 및 상기 호스트 프로토콜 프로세서(872)(범용 타입 프로세서로 구현될 수 있는)는, 메인 프로세서(862)의 부담을 들어준다. 상기 메인 프로세서(862)는 직접적인 연결들 및 공유된 메모리 통신들을 통하여 상기 디스크 프로토콜 프로세서(814) 및 상기 호스트 프로토콜 프로세서(872)를 관리한다.
상기 장치(800)는 HDD 컨트롤러(860)를 포함한다. 상기 HDD 컨트롤러(860)는 바람직하다면, IC(859)로 구현될 수 있다. 호스트 매니저 모듈(870) 및 디스크 매니저 모듈(812)은 그들의 내장된 개개의 프로토콜 프로세서들, 즉, 상기 디스크 매니저 모듈(812) 내에서의 디스크 프로토콜 프로세서(814)와 상기 호스트 매니저 모듈(870) 내에서의 호스트 프로토콜 프로세서(872)를 보여준다. 프로세서간 통신(inter-processor communication)을 용이하게 하기 위해, 공유 데이터 캐쉬(864)가 상기 장치(800)에 포함된다. 상기 3 개의 프로세서들 각각은 두 개의 프로토콜 프로세서들(디스크 프로토콜 프로세서(814) 및 상기 호스트 프로토콜 프로세서(872))에 의해 수행되는 실시간 기능들을 관리하는 것을 돕기 위해 공유 데이터 구조들(상기 버퍼에 저장된)을 읽고 쓸 수 있다. 상기 공유 데이터 캐쉬(864)는 이들 공유 억세스들의 하드웨어-인포스드 코히어런시(hardware-enforced coherency)을 위하여 제공한다.
상기 공유 캐쉬(864)는 공통된 다중-프로세서 구조이다. 다중-위치 데이터 구조 업데이트들(multi-location data structure updates)의 코히어런시(coherency)에 제공하기 위해, 부가적인 다중-프로세서 통신 메커니즘 들(additional multi-processor communication mechanisms)이 그 시스템에 제공된다. 하나의 그러한 메커니즘은 세마포어들(semaphores)이 될 수 있다.
도 9의 장치(900)를 참조하면, 도면의 상부로부터, 상기 장치(900)는 세 개의 컨트롤 루프들 각각을 서비스하기 위해 세 개의 별개의 프로세서들을 사용한다. 다른 실시 예들에 관하여 설명한 것과 같이, 하나의 프로세서가 다양한 동작 타입들을 서비스하기 위해 전담되는 것과 같이, 다중의, 분할된 프로세서들을 사용함에 의해 그들의 어떠한 것도 빈약하게 지원하거나 적절한 프로세싱 능력이 없지 않다.
상기 장치(900)는 HDD 컨트롤러(960)(바람직하다면, IC(959)로써 구현될 수 있는)를 포함한다. 상기 HDD 컨트롤러(960)는 참조번호 963에 의해 보여지는 것과 같이 서보 컨트롤 루프와 관련되는 동작들을 지원하고 실행하는 데 전담되는 제1 프로세서(first processor, 962)를 포함한다. 상기 프로세서(962)가 충분한 이용가능한 프로세싱 자원들을 가질 때 및 가진다면, 그것은 "폴리시(policy)" 펌웨어(964)를 서비스할 수 있다(예를 들면, 비-서보 펌웨어로써 보여질 수 있는 백그라운드 프로세스들과 같이).
HDD 컨트롤러(960)는 또한 제2 프로세서(second processor, 914) 및 제3 프로세서(third processor, 972)를 포함한다. 상기 제2 프로세서(914)는 참조 번호 916에 의해 보여지는 것과 같이 채널 인터페이싱 컨트롤 루프와 관련된 명령들을 지원하고 실행할 수 있다. 그리고 그것은 상기 채널 인터페이스(901)에 대응된다. 상기 제3 프로세서(972)는 참조 부호 976에 의해 보여지는 것과 같이, 호스트 인터페이싱 컨트롤 루프와 관련된 명령들을 지원하고 실행할 수 있다.
이 다이어그램에서 보여질수 있는 것과 같이, 분산된 접근이 상기 3 개의 다양한 컨트롤 루프들 각각이 그것의 자신의 전담된 프로세서를 갖도록 만든다. 이러한 방식으로, 이들 3 개의 컨트롤 루프들의 각각은 충분한 프로세싱 자원들을 제공받고, 이들 프로세싱 자원들은 늘 상기 각각의 컨트롤 루프를 서비스하는 데 사용될 수 있을 것이다(각 프로세서가 다중 컨트롤 루프들과 경쟁하지 않거나 다중 컨트롤 루프들을 서비스하려고 노력하지 않는 것과 같이).
도 10 및 도 11은 다중 제어 루프들을 서비스하기 위해 다중, 분산된 프로세서들을 사용하는 방법들의 다양한 실시 예들을 보인 도면이다.
도 10의 방법(1000)을 참조하면, 상기 방법(1000)은 블록 1010에 보여진 바와 같이, 제1 컨트롤 루프와 관련된 명령들을 실행하기 위해 제1 프로세서를 사용함에 의해 시작한다. 상기 방법(1000)은 블록 1020에 보여진 바와 같이, 제2 컨트롤 루프와 관련된 명령들을 실행하기 위해 제2 프로세서를 사용함에 의해 계속된다. 최종적으로, 상기 방법(1000)은 블록 1030에 보여진 바와 같이, 제3 컨트롤 루프와 관련된 명령들을 실행하기 위해 제3 프로세서를 사용함에 의해 계속된다. 이러한 방법은 복수의 컨트롤 루프들 각각을 그 자신의 프로세서를 가지도록 전담시키는 분산된 동작적 접근을 보여준다.
도 11의 방법(1100)을 참조하면, 이 방법(1100)은 도 10의 방법(1000)과 다소 유사(analogous)하다. 상기 방법(1100)은 블록 1110에 보여진 바와 같이, 하드 디스크 드라이브(HDD)의 서보 컨트롤 루프와 관련되는 명령들을 실행하기 위해서 제1 프로세서를 사용함에 의해 시작한다. 그 후, 상기 방법(1100)은 블록 1120에 보여진 바와 같이, 상기 HDD의 채널 인터페이스 컨트롤 루프와 관련되는 명령들을 실행하기 위해 제2 프로세서를 사용함에 의해 계속된다. 이러한 제2 프로세서는 어떤 실시 예들에서는 프로토콜 프로세서로써 구현될 수 있고, 그러한 프로토콜 프로세서는 심지어 다른 실시 예들에서는 디스크 매니저 모듈 내에서 구현될 수 있다. 최종적으로 상기 방법(1100)은 블록 1130에 보여진 바와 같이, 상기 HDD의 호스트 인터페이스 컨트롤 루프와 관련된 명령들을 실행하기 위해 제3 프로세서를 사용함에 의해 계속된다. 이러한 제3 프로세서는 어떤 실시 예들에서는 프로토콜 프로세서로써 구현될 수 있고, 그러한 프로토콜 프로세서는 심지어 다른 실시 예들에서는 호스트 매니저 모듈 내에서 구현될 수 있다. 이러한 방법은 또한 복수의 컨트롤 루프들 각각을 그 자신의 프로세서를 가지도록 전담시키는 또 다른 분산된 동작적 접근을 보여준다.
이제 이해될 수 있듯이, HDD 컨트롤러의 하드 실시간 기능들 각각을 수행하기 위해 테일러드(tailored) 및 더 나은 프로세싱 하드웨어를 적용함에 의해, 더 나은 전체적인 성능이 달성된다. 상태 기계들 또는 쓰기 가능한 컨트롤 스토어들을 대신하여 프로토콜 프로세서들을 사용함에 의해, 상기 하드 드라이브용 펌웨어 개발 작업은 간단해지고, 시스템 호환성(flexibility)도 증가된다.
여기서 제시되는 다양한 양상들이 매우 광범위한 매체 스토리지 장치들(media storage devices)에 걸쳐서(across) 적용될 수 있고, 광학 드라이브 컨트롤러들(optical drive controllers)을 사용하는 것들을 포함한다는 것에 주시해야 한다.
또한, 전술한 도면들 내에서 설명된 상기 방법들은 또한 본 발명의 범위 및 사상으로부터 벗어나지 않는 어떤 적절한 시스템 및/또는 장치 디자인들 내에서 수행될 수 있음에 주시해야 한다.
본 발명 및 관련 도면들의 상세한 설명들을 고려할 때, 다른 변경들(modifications) 및 변화들(variations)이 이제 분명해질 것이다. 그러한 다른 변경들(modifications) 및 변화들(variations)이 본 발명의 사상 및 범위를 벗어나지 않고 영향을 받을 수 있음이 또한 분명해질 것이다.
따라서, 본 발명은 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러를 제공함으로써, HDD 컨트롤러의 하드 실시간 기능들 각각을 수행하기 위해 테일러드(tailored) 및 더 나은 프로세싱 하드웨어를 적용함에 의해, 더 나은 전체적인 성능이 달성할 수 있고, 상태 기계들 또는 쓰기 가능한 컨트롤 스토어들을 대신하여 프로토콜 프로세서들을 사용함으로써, 상기 하드 드라이브용 펌웨어 개발 작업은 간단해지고, 시스템 호환성(flexibility)도 증가된다.

Claims (11)

  1. 하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
    호스트 인터페이싱을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하는 호스트 매니저 모듈; 및
    상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하는 디스크 매니저 모듈을 포함하되,
    상기 제2 프로토콜 프로세서는 상기 디스크 매니저 모듈이 제1 포맷 타입을 갖는 상기 하드 디스크 드라이브 내에서 상기 디스크에 대한 채널 인터페이싱 및 제2 포맷 타입을 갖는 적어도 하나의 부가적 디스크에 대한 채널 인터페이싱을 지원할 수 있게 하는 소프트 키 맵핑을 수행할 수 있는 것을 특징으로 하는 장치.
  2. 삭제
  3. 삭제
  4. 하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
    호스트 인터페이싱을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하는 호스트 매니저 모듈; 및
    상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하는 디스크 매니저 모듈을 포함하되,
    상기 제1 프로토콜 프로세서는 상기 하드 디스크 드라이브 내에서 호스트 인터페이스 컨트롤 루프를 통제하며;
    상기 제2 프로토콜 프로세서는 상기 하드 디스크 드라이브 내에서 채널 인터페이스 컨트롤 루프를 통제하는 것을 특징으로 하는 장치.
  5. 하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
    호스트 인터페이싱을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하는 호스트 매니저 모듈; 및
    상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하는 디스크 매니저 모듈을 포함하되,
    상기 프로세서, 상기 제1 프로토콜 프로세서, 및 상기 제2 프로토콜 프로세서는 동시 및 실시간으로 동작하는 것을 특징으로 하는 장치.
  6. 하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
    호스트 인터페이싱을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하는 호스트 매니저 모듈; 및
    상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하는 디스크 매니저 모듈을 포함하되,
    상기 프로세서는, 상기 프로세서가 상기 서보 컨트롤 루프를 통제하기 위해 총 프로세싱 능력의 미리 설정된 양보다 적게 사용할 때 비-서보 펌웨어 기능들을 백그라운드 프로세싱으로 실행하는 것을 특징으로 하는 장치.
  7. 제1 프로세서, 제2 프로세서, 및 제3 프로세서를 포함하는 하드 디스크 드라이브 컨트롤러를 구비하되,
    상기 제1 프로세서는 하드 디스크 드라이브의 서보 컨트롤 루프를 통제할 수 있고;
    상기 제2 프로세서는 호스트 인터페이싱 프로토콜 기능들을 실행할 수 있으며;
    상기 제3 프로세서는 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있되,
    상기 하드 디스크 드라이브 컨트롤러는 채널 인터페이싱을 통제할 수 있는 디스크 매니저 모듈을 포함하고,
    상기 제3 프로세서는 상기 디스크 매니저 모듈 내에 구현되고,
    상기 제3 프로세서는 상기 디스크 매니저 모듈이 제1 포맷 타입을 갖는 상기 하드 디스크 드라이브 내의 디스크에 대한 채널 인터페이싱 및 제2 포맷 타입을 갖는 적어도 하나의 부가적 디스크에 대한 채널 인터페이싱을 지원할 수 있게 하는 소프트 키 맵핑을 수행할 수 있는 것을 특징으로 하는 장치.
  8. 청구항 7에 있어서,
    상기 장치는 집적 회로인 것을 특징으로 하는 장치.
  9. 삭제
  10. 하드 디스크 드라이브 내에서 서보 컨트롤 루프를 통제할 수 있는 프로세서;
    호스트 인터페이싱을 통제할 수 있으며, 호스트 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제1 프로토콜 프로세서를 포함하는 호스트 매니저 모듈;
    상기 하드 디스크 드라이브 내에서 디스크로의 채널 인터페이싱을 통제할 수 있으며, 채널 인터페이싱 프로토콜 컨트롤 기능들을 실행할 수 있는 제2 프로토콜 프로세서를 포함하는 디스크 매니저 모듈;
    상기 프로세서, 상기 제1 프로토콜 프로세서 및 상기 제2 프로토콜 프로세서에 결합되는 공유 캐쉬; 및
    버퍼에 결합되고 상기 프로세서, 상기 호스트 매니저 모듈 및 상기 디스크 매니저 모듈 각각에 또한 결합되며, 상기 프로세서, 상기 호스트 매니저 모듈 및 상기 디스크 매니저 모듈 각각의 상기 버퍼로의 공유 억세스를 조정하고 관리할 수 있는 버퍼 매니저 모듈;을 구비하며,
    상기 프로세서는 상기 공유 캐쉬를 통하여 상기 제1 프로토콜 프로세서 및 상기 제2 프로토콜 프로세서를 관리할 수 있는 것을 특징으로 하는 장치.
  11. 청구항 1, 청구항 4, 청구항 5, 및 청구항 6 중 어느 한 항에 있어서,
    상기 장치는 집적 회로인 것을 특징으로 하는 장치.
KR1020070053970A 2006-06-01 2007-06-01 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러 KR100904648B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/444,583 US20080005749A1 (en) 2006-06-01 2006-06-01 Hard disk controller having multiple, distributed processors
US11/444,583 2006-06-01

Publications (2)

Publication Number Publication Date
KR20070115789A KR20070115789A (ko) 2007-12-06
KR100904648B1 true KR100904648B1 (ko) 2009-06-25

Family

ID=38457577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070053970A KR100904648B1 (ko) 2006-06-01 2007-06-01 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러

Country Status (5)

Country Link
US (1) US20080005749A1 (ko)
EP (1) EP1862894A3 (ko)
KR (1) KR100904648B1 (ko)
CN (1) CN101083101B (ko)
TW (1) TW200820060A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8144413B2 (en) * 2007-04-30 2012-03-27 Broadcom Corporation Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers
US8090906B1 (en) * 2009-06-10 2012-01-03 Western Digital Technologies, Inc. Dynamic processor bandwidth allocation in response to environmental conditions
CN102065071B (zh) * 2009-11-17 2013-05-01 北京同有飞骥科技股份有限公司 一种支持多传输协议的存储设备
SG10201406338XA (en) * 2014-10-03 2016-05-30 Agency Science Tech & Res Active storage devices
CN105049411A (zh) * 2015-05-29 2015-11-11 浪潮集团有限公司 一种采用scst实现多协议通信的方法
CN106951268A (zh) * 2017-03-31 2017-07-14 山东超越数控电子有限公司 一种申威平台支持NVMe硬盘启动的实现方法
US10020012B1 (en) 2017-10-31 2018-07-10 Seagate Technology Llc Data storage drive with low-latency ports coupling multiple servo control processors
CN109240191B (zh) * 2018-04-25 2020-04-03 实时侠智能控制技术有限公司 集成运动控制和电机控制的控制器和控制系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970703013A (ko) * 1990-11-09 1997-06-10 융통적인 호스트 인터페이스 제어구조(flexible host interface controller architecture)
JP2000010944A (ja) * 1998-06-24 2000-01-14 Nec Corp マルチプロセッサディスクアレイ制御装置
JP2006079793A (ja) * 2004-09-13 2006-03-23 Fujitsu Ltd 磁気記録再生装置および磁気記録再生方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
JP3160149B2 (ja) * 1994-05-13 2001-04-23 株式会社日立製作所 ディスク制御装置の無停止プログラム変更方法およびディスク制御装置
US5832244A (en) * 1996-02-20 1998-11-03 Iomega Corporation Multiple interface input/output port for a peripheral device
US6662253B1 (en) * 2000-09-13 2003-12-09 Stmicroelectronics, Inc. Shared peripheral architecture
US6661590B2 (en) * 2001-05-25 2003-12-09 Infineon Technologies Ag Efficient analog front end for a read/write channel of a hard disk drive running from a highly regulated power supply
AU2003263093A1 (en) * 2002-09-06 2004-03-29 Maxtor Corporation One button external backup
JP3776884B2 (ja) * 2002-12-27 2006-05-17 株式会社東芝 イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US6987632B2 (en) * 2003-07-22 2006-01-17 Matsushita Electric Industral Co., Ltd. Systems for conditional servowriting
US7694026B2 (en) * 2006-03-31 2010-04-06 Intel Corporation Methods and arrangements to handle non-queued commands for data storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970703013A (ko) * 1990-11-09 1997-06-10 융통적인 호스트 인터페이스 제어구조(flexible host interface controller architecture)
KR100245896B1 (ko) * 1990-11-09 2000-03-02 토마스 에프.멀베니 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기
JP2000010944A (ja) * 1998-06-24 2000-01-14 Nec Corp マルチプロセッサディスクアレイ制御装置
JP2006079793A (ja) * 2004-09-13 2006-03-23 Fujitsu Ltd 磁気記録再生装置および磁気記録再生方法

Also Published As

Publication number Publication date
EP1862894A3 (en) 2009-03-11
CN101083101A (zh) 2007-12-05
CN101083101B (zh) 2011-01-05
US20080005749A1 (en) 2008-01-03
EP1862894A2 (en) 2007-12-05
KR20070115789A (ko) 2007-12-06
TW200820060A (en) 2008-05-01

Similar Documents

Publication Publication Date Title
KR100904648B1 (ko) 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러
US8024637B2 (en) Super block error correction code (ECC) adaptable to communication systems including hard disk drives (HDDs) and other memory storage devices
US20090204758A1 (en) Systems and methods for asymmetric raid devices
US7733590B2 (en) Optimal synchronization mark/address mark construction
US8074146B2 (en) Multiple cyclic redundancy check (CRC) engines for checking/appending CRCs during data transfers
US20090216942A1 (en) Efficient memory management for hard disk drive (hdd) read channel
JP2008016175A (ja) 方向性および浮動ライトバンドを有するコマンドキュー順序付け
US20170242613A1 (en) Processing Circuit Controlled Data Storage Unit Selection
US10318173B2 (en) Multi-speed data storage device with media cache for high speed writes
JP2001307410A (ja) 磁気ディスク装置、データ記録方法、およびデータ再生方法
JP2006344220A (ja) ローカルリソースおよび共用リソースを備えたデータ記憶サブグループ
US20080005384A1 (en) Hard disk drive progressive channel interface
US20080155351A1 (en) Method for combining multiple trace sources in an embedded system
US20080086676A1 (en) Segregation of redundant control bits in an ecc permuted, systematic modulation code
US8736993B2 (en) Failure-resistant multi-LUN hard disk drive
US7747811B2 (en) Disk formatter and methods for use therewith
US7904645B2 (en) Formatting disk drive data using format field elements
KR100943855B1 (ko) 디스크 컨트롤러, 채널 인터페이스 및 그 이용 방법
US8144413B2 (en) Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers
US6917490B2 (en) System and method for storing information in a disk drive
US7818629B2 (en) Multiple winner arbitration
US20070299994A1 (en) Disk controller, host interface module and methods for use therewith
US20140068178A1 (en) Write performance optimized format for a hybrid drive
JPH03290873A (ja) ディスク型記憶装置、ディスク型記憶装置の制御装置、及びディスク型記憶装置の制御方法
JP2008158572A (ja) データ記憶装置

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