KR20060083012A - Method for providing selective access to plural devices and apparatus thereof - Google Patents
Method for providing selective access to plural devices and apparatus thereof Download PDFInfo
- Publication number
- KR20060083012A KR20060083012A KR1020050003640A KR20050003640A KR20060083012A KR 20060083012 A KR20060083012 A KR 20060083012A KR 1020050003640 A KR1020050003640 A KR 1020050003640A KR 20050003640 A KR20050003640 A KR 20050003640A KR 20060083012 A KR20060083012 A KR 20060083012A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- access
- address
- access information
- devices
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 복수의 소자에 대한 선택적 억세스를 제공하는 방법 및 그 장치를 개시한다.The present invention discloses a method and apparatus for providing selective access to a plurality of devices.
본 발명에 의하면, 다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 방법에 있어서, 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 제1 접근 정보로 저장하고, 소자들의 내부 레지스터들이 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하며, 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시키고, 프로세서가 억세스를 위해 출력하는 어드레스의 값이 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 프로세서의 억세스가 있음을 통지하여, 프로세서의 입장에서는 개발 과정에서 어드레스가 변경 혹은 추가될 수 있는 각 벤더별 채널 IC 및 프리앰프 IC를 각각 별도로 해당 어드레스를 변경해가면서 필요한 명령을 실행할 필요 없이 각 IC별로 정해진 논리적인 어드레스만 지정하면 본 발명에 따라 실제의 어드레스로 연결하여 필요한 정보를 쓰거나 읽을 수 있도록 하며, 같은 기능을 가지는 소자를 동시에 사용하여 개발해야 하는 HDD 개발과 같은 분야에서 전체 개발기간을 단축할 수 있으며, 산출하기 힘든 무형적인 이익을 바라볼 수 있다.According to the present invention, a method of transferring a plurality of devices to each device when the processor selectively accesses them, storing physical addresses of accessible internal registers of the devices as first access information, and storing the internal devices. The registers store the logical address accessed by the processor as the second access information. The registers associate the logical address with the physical address for each device based on the stored first and second access information. If the value coincides with any one of the second access information, the device corresponding to the first access information is notified that the processor has access, and from the processor's point of view, each vendor-specific channel whose address can be changed or added during development. Change the corresponding address separately for IC and preamp IC According to the present invention, it is possible to connect to an actual address so that necessary information can be written or read by designating only a logical address determined for each IC without having to execute a necessary command while developing a HDD, which must be developed by using devices having the same function at the same time. In this field, the overall development period can be shortened, and intangible benefits are difficult to calculate.
Description
도 1은 HDD 개발 단계에서 종래에 사용되고 있는 채널 IC와 프리 앰프에 접근하는 경로의 예를 도시한 것이다.FIG. 1 illustrates an example of a path for accessing a channel IC and a pre-amplifier used in the HDD development stage.
도 2는 본 발명에 따라 복수의 소자에 대한 선택적 억세스를 제공하는 방법의 흐름을 도시한 것이다.2 illustrates a flow of a method for providing selective access to a plurality of devices in accordance with the present invention.
도 3은 본 발명에 따라 복수의 소자에 대한 선택적 억세스를 제공하는 장치와 동작 환경의 구성을 블록으로 도시한 것이다.3 is a block diagram illustrating a configuration of an apparatus and an operating environment for providing selective access to a plurality of devices according to the present invention.
도 4는 본 발명에 따른 엑세스 제공 장치를 사용한 결과를 도 1의 종래의 경우와 비교하기 위한 도면이다.4 is a view for comparing the result of using the access providing apparatus according to the present invention with the conventional case of FIG.
본 발명은 데이터 저장 장치에 관한 것으로서, 하드디스크 드라이브와 같은 데이터 저장 장치에서 복수의 소자에 대한 선택적 억세스를 제공하는 방법 및 그 장치에 관한 것이다.BACKGROUND OF THE
하드디스크 드라이브(이하 HDD)의 동작을 위해 데이터가 기록되는 미디어 (media)에서 읽어들인 신호를 처리하는 부품들의 하나로 프리앰프(pre-amp) IC와 채널(channel) IC를 사용한다. 이러한 부품들의 상세한 동작은 모두 HDD에 내장된 펌웨어의 제어 하에서 동작하게 한다.For the operation of a hard disk drive (HDD), a pre-amp IC and a channel IC are used as one of components for processing a signal read from a media in which data is recorded. The detailed operation of these components allows all of them to operate under the control of firmware embedded in the HDD.
HDD 개발 단계에서의 위험 부담을 최소화하기 위해 혹은 원가절감의 목적으로 여러 벤더(vendor)에서 제작된 프리앰프와 채널 IC들을 사용할 수 있도록 동시에 개발하거나 혹은 시간 차이를 두고 각 프리앰프 혹은 채널 IC에 대해 개발하는 것이 보통이다.For each preamplifier or channel IC to be developed at the same time or at different time intervals, so as to minimize the risk in HDD development or to reduce the cost and to use the preamplifier and channel ICs manufactured by multiple vendors. It is common to develop.
그런데 각 벤더에서 제공하는 프리앰프나 채널 IC의 소자들의 사양이 동일하지 않기 때문에 HDD의 펌웨어의 입장에서는 사용하는 소자의 벤더가 변경되더라도 제대로 동작하도록 각 소자별로 펌웨어 내부의 코드 내에서 처리를 하도록 준비해야 한다. 다시 말해서 경우에 따라 사용하는 내부 부품 소자의 제조업체가 다른 경우에도 정확한 동작을 하도록 하기 위해 각 제조업체별로 차이가 나는 스펙에 따라 펌웨어 코드를 작성해야 하는 것이다.However, because the specifications of the components of the preamplifier and channel IC provided by each vendor are not the same, the firmware of the HDD is prepared to process the code inside the firmware for each device so that it works properly even if the vendor of the device is changed. Should be. In other words, the firmware code must be written according to the specifications that are different for each manufacturer in order to ensure correct operation even when the manufacturer of the internal component devices used are different.
이와 같은 펌웨어의 코드 구조로 인하여 펌웨어 코드는 복잡해질 수 있다. 특히 개발 단계에서는 이와 같은 펌웨어 코드의 복잡성 때문에 여러 가지 부작용이 발생할 수 있다. 동일한 작업을 조금씩 수정해가면서 공급업체의 개수만큼 반복해야 하며, 여러 번의 시행착오, 프로그램의 버그 발생 등이 그 부작용의 일 예이다.The firmware code may be complicated by the code structure of the firmware. Especially in the development stage, this complexity of firmware code can cause various side effects. The same task must be modified in small increments, repeating as many as the number of suppliers, and multiple trials and errors and bugs in the program are examples of side effects.
도 1은 HDD 개발 단계에서 종래에 사용되고 있는 채널 IC와 프리 앰프에 접근하는 경로의 예를 도시한 것이다. 참조번호 100은 펌웨어를 실행하는 프로세서에서 발생되는 명령어들의 예이며, 참조번호 110은 이와 같은 명령어를 실행하면서 억세스되는 자원으로 벤더 A, B, C의 각 벤더별 채널 IC와 프리앰프 IC의 레지스터들이다.FIG. 1 illustrates an example of a path for accessing a channel IC and a pre-amplifier used in the HDD development stage.
도면에서 알 수 있는 것처럼 펌웨어를 실행하는 프로세서 입장에서는 각 명령어마다 채널 및 프리앰프에 접근할 필요가 있는 경우, 각각의 명령어 블록에서 각 밴더별 IC를 억세스하는 모든 경우에 대한 고려를 해야 한다. 이로 인해 펌웨어 코드는 복잡해지게 되며, 상대적으로 버그의 확률은 높아지며, 개발에 있어서 시행 착오가 늘어나게 되는 문제가 있게 된다.As can be seen from the figure, the processor executing the firmware needs to consider all cases of accessing the IC of each vendor in each instruction block when it is necessary to access a channel and a preamplifier for each instruction. As a result, the firmware code becomes complicated, a relatively high probability of bugs, and a problem of increasing trial and error in development.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 펌웨어를 실행하는 프로세서 입장에서 억세스할 수 있는 동일한 기능을 가진 소자 부품들의 동작 사양에 차이가 있을 경우에도 항상 동일한 억세스를 할 수 있도록 복수의 소자에 대한 선택적 억세스를 제공하는 방법 및 그 장치를 제공하는데 있다.The technical problem to be achieved by the present invention is to solve the above problems, even if there is a difference in the operating specifications of the component parts having the same function that can be accessed from the processor running the firmware, the same access can always be The present invention provides a method and apparatus for providing selective access to a plurality of devices.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 복수의 소자에 대한 선택적 억세스를 제공하는 방법은, 다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 방법에 있어서, (a) 상기 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 제1 접근 정보로 저장하는 단계; (b) 상기 소자들의 내부 레지스터들이 상기 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하는 단계; (c) 상기 (a) 단계 및 (b) 단계에서 저 장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시키는 단계; 및 (d) 상기 프로세서가 억세스를 위해 출력하는 어드레스의 값이 상기 (b) 단계에서 저장한 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 상기 프로세서의 억세스가 있음을 통지하는 단계;를 포함하는 것을 특징으로 한다.According to the present invention for solving the above technical problem, a method for providing a selective access to a plurality of devices, in the method of delivering it to each device when the processor selectively access (access) a plurality of devices, ( a) storing the physical address of the accessible internal registers of the devices as first access information; (b) storing, as second access information, a logical address to which internal registers of the elements are accessed by the processor; (c) associating a logical address and a physical address for each device based on the first and second access information stored in steps (a) and (b); And (d) if the value of the address output by the processor for access matches any one of the second access information stored in step (b), access of the processor to an element corresponding to the first access information associated therewith is performed. Notifying that there is; characterized in that it comprises a.
이때에 상기 (d) 단계에서 대응하는 소자에 통지하면서 상기 프로세서가 출력하는 어드레스 값에 대응되는 레지스터의 물리적 어드레스를 같이 통보하는 것이 바람직하다.In this case, it is preferable that the physical address of the register corresponding to the address value output from the processor is notified together while notifying the corresponding device in step (d).
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 복수의 소자에 대한 선택적 억세스를 제공하는 장치는, 다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 장치에 있어서, 상기 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 제1 접근 정보로 저장하는 제1저장부; 상기 소자들의 내부 레지스터들이 상기 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하는 제2저장부; 상기 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시키는 정보연관부; 및 상기 프로세서가 억세스를 위해 출력하는 어드레스를 실시간으로 디코딩하여 얻어진 어드레스 값이 상기 제2저장부에 저장된 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 상기 프로세서의 억세스가 있음을 통지하는 어드레스디코더부;를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided an apparatus for providing selective access to a plurality of devices, the apparatus for delivering the same to each device when the processor selectively accesses a plurality of devices. A first storage unit which stores physical addresses of accessible internal registers of the devices as first access information; A second storage unit which stores, as second access information, a logical address to which internal registers of the elements are accessed by the processor; An information association unit for associating a logical address and a physical address for each device based on the stored first and second access information; And an element corresponding to the first access information associated with the processor when the address value obtained by decoding the address output by the processor for access in real time matches any one of the second access information stored in the second storage unit. And an address decoder that notifies that there is access.
이때에 상기 어드레스디코더부는 프로세서의 억세스가 있음을 통지함과 동시 에 상기 프로세서가 출력하는 어드레스 값에 대응되는 레지스터의 물리적 어드레스 값을 같이 전달하는 것이 바람직하다.At this time, it is preferable that the address decoder transmits the physical address value of the register corresponding to the address value output from the processor while notifying that the processor has access.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명에 따라 복수의 소자에 대한 선택적 억세스를 제공하는 방법의 흐름을 도시한 것이다.2 illustrates a flow of a method for providing selective access to a plurality of devices in accordance with the present invention.
다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 이 방법은, 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 제1 접근 정보로 저장하고(200 단계), 소자들의 내부 레지스터들이 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하며(210 단계), 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시킨다(220 단계). 그리고 프로세서가 억세스를 위해 출력하는 어드레스의 값이 210 단계에서 저장한 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 프로세서의 억세스가 있음을 통지한다(230 단계).When a processor selectively accesses a plurality of devices, this method of transferring them to each device stores the physical address of the accessible internal registers of the devices as first access information (step 200), and the internal registers of the devices. They store the logical address accessed by the processor as the second access information (step 210), and associate the logical address and the physical address for each device based on the stored first and second access information (step 220). When the value of the address output by the processor for access matches any one of the second access information stored in
이때에 230 단계에서 대응하는 소자에 통지하면서 상기 프로세서가 출력하는 어드레스 값에 대응되는 레지스터의 물리적 어드레스를 같이 통보하는 것이 바람직하다.In this case, it is preferable to notify the corresponding device in
도 3은 본 발명에 따라 복수의 소자에 대한 선택적 억세스를 제공하는 장치 와 동작 환경의 구성을 블록으로 도시한 것이다.3 is a block diagram illustrating a configuration of an apparatus and an operating environment for providing selective access to a plurality of devices according to the present invention.
다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 이 장치는, 소자들의 억세스 가능한 내부 레지스터들(340)의 물리적 어드레스를 제1 접근 정보로 저장하는 제1저장부(300), 소자들의 내부 레지스터들(340)이 상기 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하는 제2저장부(310), 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시키는 정보연관부(320) 및 상기 프로세서(350)가 억세스를 위해 출력하는 어드레스를 실시간으로 디코딩하여 얻어진 어드레스 값이 제2저장부(310)에 저장된 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 프로세서(350)의 억세스가 있음을 통지하는 어드레스디코더부(330)를 포함한다.When the processor selectively accesses a plurality of devices, the device, which delivers them to each device, may include a first storage unit configured to store physical addresses of accessible
상기의 방법과 마찬가지로 어드레스디코더부(330)는 프로세서(350)의 억세스가 있음을 통지함과 동시에 프로세서(350)가 출력하는 어드레스 값에 대응되는 레지스터의 물리적 어드레스 값을 같이 전달하는 것이 바람직하다.As in the above method, it is preferable that the
이하에서는 도 3의 구성으로 도 2의 과정을 실시하는 구체적인 내용에 대해 설명한다.Hereinafter, specific contents of the process of FIG. 2 with the configuration of FIG. 3 will be described.
도 1에서 도시된 것과 같이 동일한 기능을 가지는 다수의 소자들을 프로세서가 선택적으로 억세스(access)하는 환경에서 본 발명은 동작한다.The present invention operates in an environment in which the processor selectively accesses multiple devices having the same functionality as shown in FIG.
프로세서(350)가 억세스할 수 있는 소자들은 프로세서 입장에서는 자신이 이용할 수 있는 자원(resource)이다. 각 소자들에 억세스하기 위해 프로세서는 그 소 자들 더 자세히는 소자들에 내장된 레지스터에 부여된 어드레스를 출력하면서 필요한 값을 그 어드레스에 해당되는 영역에 쓰거나 혹은 그 영역에 기록되어 있는 데이터를 읽어온다.Elements accessible by the
이와 같이 외부의 프로세서나 혹은 그와 같은 마스터(master) 기능을 가진 소자에 의해 억세스될 수 있는 각 소자들의 내부 레지스터들의 물리적인 어드레스를 제1저장부(300)가 저장한다(200 단계). 하나의 소자에는 여러 개의 레지스터가 있는 것이 보통이며, 각 레지스터는 어드레스 값에 따라 구분된다. As described above, the
프로세서가 소자를 제어하기 위해서는 해당되는 레지스터의 어드레스를 지정하여 특정한 값을 기록한다. 혹은 프로세서는 소자의 상태나 제어의 결과를 알기 위해서 그에 해당되는 레지스터의 어드레스를 지정하여 그 어드레스로 지정되는 영역에 기록되어 있는 값을 읽어 온다. 이 값을 그 소자의 사양에 따라 해석하여 필요한 결과를 얻는 것이다.To control the device, the processor writes a specific value by addressing the corresponding register. Alternatively, the processor designates the address of the register corresponding to the state of the device and the result of the control, and reads the value recorded in the area designated by the address. This value is interpreted according to the specifications of the device to obtain the required result.
제1저장부(300)는 이와 같은 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 저장한다. 그리고 이 저장된 정보를 구분을 위해 제1 접근 정보라고 한다.The
일반적으로는 상기와 같이 프로세서가 직접 소자들의 레지스터에 할당된 물리적인 어드레스를 직접 억세스한다. 그러면 도 1과 같이 프로세서가 억세스해야 하는 대상이 혹은 대상 어드레스가 변경될 때마다 프로세서를 구동하는 코드가 변경되어하므로 본원 발명은 이를 개선하기 위해 프로세서는 해당되는 대상에 논리적인 어드레스를 부여한다. A 벤더의 채널 IC를 억세스하는 경우 그 IC에 부여된 물 리적인 어드레스를 억세스하는 것이 아니라 그 IC에 부여된 논리적인 어드레스를 억세스하는 것이다. Generally, as above, the processor directly accesses the physical address assigned to the registers of the elements. Then, as shown in FIG. 1, the code for driving the processor is changed whenever the target to which the processor needs to access or when the target address changes, so that the present invention provides a logical address to the target in order to improve this. When a channel IC of an A vendor is accessed, the physical address assigned to the IC is not accessed, but the logical address assigned to the IC is accessed.
구체적인 예로, 하드디스크 드라이브에서 OSC(over shoot control)를 컨트롤하는 레지스터를 예로 든다.As a specific example, a register that controls over shoot control (OSC) in a hard disk drive is taken as an example.
상기 OSC를 컨트롤하기 위한 각 벤더별 소자들의 레지스터 맵(register map)의 예는 다음과 같다.An example of a register map of each vendor-specific device for controlling the OSC is as follows.
<51XXD 의 경우> 사이즈 5bit 이면서 02h, 0ch 2개의 레지스터에 나누어서 맵핑되어 있음.<51XXD> Size 5bit, 02h, 0ch divided into two registers.
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
R02h : 2 1 0R02h: 2 1 0
R0Ch : 4 3R0Ch: 4 3
<TI18XX 의 경우> 사이즈 4bit 이면서 09h 1개의 레지스터에 맵핑되어 있음.<For TI18XX> Size 4bit and mapped to one register at 09h.
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
R09h : 3 2 1 0R09h: 3 2 1 0
<PA75XX 의 경우> 사이즈 5bit 이면서 09h, 12h 2개의 레지스터에 맵핑되어 있음.<In case of PA75XX> Size 5bit and mapped to 2 registers, 09h and 12h.
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
R09h : 3 2 1 0R09h: 3 2 1 0
R12h : 4R12h: 4
위와 같이 각 밴더별 소자가 맵핑이 되어 있을 경우, 종래의 방식으로는 OSC를 컨트롤해야 하는 수많은 루틴마다 옵션처리를 해 줌과 동시에 추가의 벤더가 생기거나 레지스터맵의 변동이 있을때마다, 해당되는 모든 루틴을 점검하여 수정을 해 주어야 한다.If each vendor-specific device is mapped as above, the conventional method performs option processing for a number of routines that need to control the OSC, and at the same time every additional vendor or register map changes, You should check the routine and make corrections.
종래에 상기와 같은 OSC의 동일한 기능을 하는 소자들을 제어하는 방법은 다음과 같은 코드로 생성될 수 있다.Conventionally, a method of controlling devices having the same function as the OSC may be generated by the following code.
IdlePowerSave()IdlePowerSave ()
{{
..
. .
#if PREAMP_CHIP == AG7550#if PREAMP_CHIP == AG7550
d = (chnRdMv(0x09) & 0x0F) | ((chnRdMv(0x12) & 0x40) >> 2);d = (chnRdMv (0x09) & 0x0F) | ((chnRdMv (0x12) & 0x40) >> 2);
#elif PREAMP_CHIP==TI1860#elif PREAMP_CHIP == TI1860
d = (chnWrMv(PA_R09) & 0x0F) ;d = (chnWrMv (PA_R09) &0x0F);
#else // PREAMP_CHIP==MV5114#else // PREAMP_CHIP == MV5114
d = ((chnWrMv(PA_R02) & 0xe0) >> 5) | ((chnWrMv(PA_R0C) & 0x30) >> 1);d = ((chnWrMv (PA_R02) & 0xe0) >> 5) | ((chnWrMv (PA_R0C) & 0x30) >> 1);
#endif #endif
..
..
}}
위와 같은 식으로 OSC를 처리해야 하는 모든 해당 부분에서 벤더별로 처리를 해 주어야 한다.In the same way as above, all relevant parts that need to process OSC should be processed by vendor.
본 발명에 따라 개선된 경우의 예는 다음과 같다.Examples of cases improved according to the invention are as follows.
다음과 같이 각 레지스터별로 로지컬 어드레스를 지정해 줌. Assign logical address to each register as follows.
.EQU ZH_WC 0x21B.EQU ZH_WC 0x21B
.EQU ZH_OSC 0x21C .EQU ZH_OSC 0x21C
.EQU ZH_RWOFFS 0x21D.EQU ZH_RWOFFS 0x21D
그리고, 로지컬 어드레스를 관리해주는 별도의 루틴을 생성한다. 다음은 로지컬 어드레스를 관리해주는 별도의 루틴의 일 예이다.Then, create a separate routine that manages logical addresses. The following is an example of a separate routine that manages logical addresses.
WORD RdLogReg(WORD r)WORD RdLogReg (WORD r)
{{
WORD *p;WORD * p;
WORD d;WORD d;
. . . .
switch(r)switch (r)
{ {
case ZH_RC:case ZH_RC:
d = ((chnRdMv(PA_R01) & 0xf8) >> 2)|((chnRdMv(PA_R09) & 0x40) >> 6); d = ((chnRdMv (PA_R01) & 0xf8) >> 2) | ((chnRdMv (PA_R09) & 0x40) >> 6);
break; break;
..
..
case ZH_OSCcase ZH_OSC
#if PREAMP_CHIP == AG7550#if PREAMP_CHIP == AG7550
d = (chnRdMv(0x09) & 0x0F) | ((chnRdMv(0x12) & 0x40) >> 2); d = (chnRdMv (0x09) & 0x0F) | ((chnRdMv (0x12) & 0x40) >> 2);
#elif PREAMP_CHIP==TI1860#elif PREAMP_CHIP == TI1860
d = (chnWrMv(PA_R09) & 0x0F) ; d = (chnWrMv (PA_R09) &0x0F);
#else // PREAMP_CHIP==MV5114#else // PREAMP_CHIP == MV5114
d = ((chnWrMv(PA_R02) & 0xe0) >> 5) | ((chnWrMv(PA_R0C) & 0x30) >> 1);d = ((chnWrMv (PA_R02) & 0xe0) >> 5) | ((chnWrMv (PA_R0C) & 0x30) >> 1);
#endif #endif
break; break;
return d;return d;
}}
상기와 같은 구성을 통해, 각 벤더별로 제어 대상인 소자에 변동사항이 있거나 혹은 같은 기능을 가진 소자의 벤더가 추가되는 경우에도 상기에 든 예와 같은 로지컬 어드레스 처리 부분의 루틴만 수정 내지는 보완을 해 주면 이 루틴을 부르는 수많은 다른 루틴들은 별도의 수정없이 그대로 사용이 가능하다. 그리고 이를 통해 제어하는 전체 코드 크기도 줄어들게 된다.Through the above configuration, even if there is a change in the device to be controlled for each vendor or a vendor of a device having the same function is added, only the routine of the logical address processing part as in the above example is corrected or supplemented. Many other routines that call this routine can be used without modification. This also reduces the overall code size that you control.
다음은 본 발명에 따라 개선된 처리 루틴을 호출하는 예이다.The following is an example of calling an improved processing routine according to the present invention.
IdlePowerSave()IdlePowerSave ()
{{
..
. .
d = RdLogReg(ZH_OSC); d = RdLogReg (ZH_OSC);
..
}}
상기에 든 예는 프로그램적으로 소프트웨어적인 방법을 통해 본 발명을 실행하는 예를 든 것이다. 이 외에도 이를 PLD나 FPGA와 같은 수단을 이용해서 하드웨어적으로 구성하여 실시할 수도 있다.The above examples are examples of implementing the present invention through a programmatic software method. In addition, this can be done by hardware configuration using means such as PLD or FPGA.
제2저장부(310)는 이와 같은 각 소자들에 부여되어 프로세서에 의해 억세스되는 논리적인 어드레스를 제2 접근 정보로 저장한다(210 단계).The second storage unit 310 stores the logical address assigned to each of these elements and accessed by the processor as the second access information (step 210).
정보연관부(320)는 상기와 같이 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별 구체적으로는 각 소자에 내장된 레지스터별로 논리적 어드레스와 물리적 어드레스를 연관시킨다(220 단계). The
프로세서(350)가 외부 자원을 억세스하기 위해서는 억세스 시작(혹은 전송 시작)이라는 신호, 이 억세스가 읽기인가 혹은 쓰기인가의 신호 및 대상 어드레스 라인 신호가 최소한 구동되어야 한다. In order for the
어드레스디코더부(330)는 이와 같은 프로세서에서 출력되는 신호를 실시간으로 감시한다. 동시에 프로세서가 출력하는 어드레스 신호들을 디코딩하여 각 소자별 레지스터(340)가 억세스되는가를 감시한다. 각 소자별 레지스터에 대응되는 논리적인 어드레스값이 감지되면 이는 제2저장부(310)에 저장된 정보와 관련된 값이다.The
어드레스디코더부(330)는 정보연관부(320)의 결과를 참조하여 그 논리적인 어드레스인 제2 접근 정보에 연관된 제1 접근 정보를 파악하며, 그 제1 접근 정보에 대응하는 소자에 프로세서로부터의 억세스가 있다는 것을 통보하여(230 단계) 그에 대한 응답이 소자로부터 프로세서로 전달되도록 한다.The
더 자세히는 해당되는 소자에 억세스 시작 신호와 읽기 혹은 쓰기의 신호는 구현예에 따라 프로세서(350)에서 직접 혹은 버퍼를 통해 혹은 어드레스디코더부(330)를 통해 해당 소자로 전달되고, 소자 혹은 소자의 레지스터가 선택되었다는 신호는 도면에는 표시되지 않은 다른 구성부 혹은 어드레스디코더부(330)가 프로세서(350)의 어드레스 신호를 디코딩하여 소자로 전달하며, 어드레스디코더부(330)가 프로세서의 논리적 어드레스로부터 물리적 어드레스를 생성하여 해당되는 소자에 전달한다. 이와 같은 과정을 통해 전달된 신호의 조합에 의하여 해당되는 소자는 프로세서에 의해 자신이 선택되었다는 것을 알게된다.In more detail, the start access signal and the read or write signal to the corresponding device are transferred from the
상기의 예에서 프로세서의 동작이 쓰기 동작이면 어드레스 신호를 출력한 후 , 어드레스와 동시에 혹은 소정의 시간이 지난 후에 데이터 값이 소자로 전달될 것이며, 프로세서가 읽기 동작인 경우에는 소자는 해당되는 레지스터의 값을 데이터 라인을 통해 프로세서(350)로 전달한다. 이때에 해당되는 소자에서 출력되는 데이터 전송을 위한 신호와 데이터의 값은 구현 예에 따라 달라질 수 있지만 직접 혹은 버퍼와 같은 기능부를 통해서 프로세서(350)로 직접 전달될 것이다.In the above example, if the operation of the processor is a write operation, after outputting the address signal, the data value will be transferred to the device at the same time as the address or after a predetermined time. The value is transferred to the
상기와 같은 과정을 통해 프로세서(350)와 각 소자별 레지스터(340)의 사이에 본 발명에 따른 장치가 동작하여 동일한 동작을 하는 소자들을 프로세서가 선택적으로 억세스할 수 있도록 한다.Through the above process, the device according to the present invention operates between the
도 4는 본 발명에 따른 엑세스 제공 장치를 사용한 결과를 도 1의 종래의 경우와 비교하기 위한 도면이다.4 is a view for comparing the result of using the access providing apparatus according to the present invention with the conventional case of FIG.
도 4의 참조번호 100은 펌웨어를 실행하는 프로세서에서 발생되는 명령어들의 예이며, 참조번호 110은 이와 같은 명령어를 실행하면서 억세스되는 자원으로 벤더 A, B, C의 각 벤더별 채널 IC와 프리앰프 IC의 레지스터들로 도 1과 동일하다.
다만 도 4에서 본 발명에 따른 억세스 제공 장치(400)가 중간에 관여되어 참조번호 100의 명령들을 실행하는 프로세서의 입장에서는 개발 과정에서 어드레스가 변경 혹은 추가될 수 있는 각 벤더별 채널 IC 및 프리앰프 IC를 각각 별도로 해당 어드레스를 변경해가면서 필요한 명령을 실행할 필요 없이 각 IC별로 정해진 논리적인 어드레스만 지정하면 본 발명에 따른 억세스 제공 장치(400)가 해당되는 실제의 어드레스로 연결하여 필요한 정보를 쓰거나 읽을 수 있도록 한다.However, in FIG. 4, the processor providing the
그 결과 특히 개발 과정에 있어서 프로세서의 실행 코드를 변경할 필요가 없으며, 코드의 내용이 간단해지고, 그 결과 계속되는 변경으로 인한 버그 발생을 줄일 수 있다는 것을 알 수 있다.The result is that you don't have to change the processor's executable code, especially during development, which simplifies the code's content and reduces bugs caused by subsequent changes.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다. 상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. Examples included in the above description are introduced for the understanding of the present invention, and these examples do not limit the spirit and scope of the present invention. It will be apparent to those skilled in the art that various embodiments in accordance with the present invention in addition to the above examples are possible. The scope of the present invention is shown not in the above description but in the claims, and all differences within the scope will be construed as being included in the present invention.
또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.In addition, it can be easily understood by those skilled in the art that each of the above steps according to the present invention can be variously implemented in software or hardware using a general programming technique.
그리고 본 발명의 일부 단계들은, 또한, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.And some steps of the invention may also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored.
본 발명에 의하면, 다수의 소자들을 프로세서가 선택적으로 억세스(access)할 경우 각 소자에 이를 전달하는 방법에 있어서, 소자들의 억세스 가능한 내부 레지스터들의 물리적 어드레스를 제1 접근 정보로 저장하고, 소자들의 내부 레지스터들이 프로세서에 의해 억세스되는 논리적 어드레스를 제2 접근 정보로 저장하며, 저장된 제1 및 제2 접근 정보를 바탕으로 각 소자별로 논리적 어드레스와 물리적 어드레스를 연관시키고, 프로세서가 억세스를 위해 출력하는 어드레스의 값이 제2 접근 정보의 어느 하나와 일치하면 그에 연관된 제1 접근 정보에 대응하는 소자로 프로세서의 억세스가 있음을 통지하여, 프로세서의 입장에서는 개발 과정에서 어드레스가 변경 혹은 추가될 수 있는 각 벤더별 채널 IC 및 프리앰프 IC를 각각 별도로 해당 어드레스를 변경해가면서 필요한 명령을 실행할 필요 없이 각 IC별로 정해진 논리적인 어드레스만 지정하면 본 발명에 따라 실제의 어드레스로 연결하여 필요한 정보를 쓰거나 읽을 수 있도록 하며, 특히 개발 과정에 있어서 프로세서의 실행 코드를 변경할 필요가 없으며, 코드의 내용이 간단해지고, 그 결과 계속되는 변경으로 인한 버그 발생을 줄일 수 있어 같은 기능을 가지는 소자를 동시에 사용하여 개발해야 하는 HDD 개발과 같은 분야에서 전체 개발기간을 단축할 수 있으며, 산출하기 힘든 무형적인 이익을 바라볼 수 있다. According to the present invention, a method of transferring a plurality of devices to each device when the processor selectively accesses them, storing physical addresses of accessible internal registers of the devices as first access information, and storing the internal devices. The registers store the logical address accessed by the processor as the second access information. The registers associate the logical address with the physical address for each device based on the stored first and second access information. If the value coincides with any one of the second access information, the device corresponding to the first access information is notified that the processor has access, and from the processor's point of view, each vendor-specific channel whose address can be changed or added during development. Change the corresponding address separately for IC and preamp IC By specifying only a logical address determined for each IC without having to execute necessary instructions, it is possible to write or read necessary information by connecting to an actual address according to the present invention, and in particular, there is no need to change the execution code of the processor during development. As a result, the contents of the code can be simplified, and as a result, the occurrence of bugs due to continuous changes can be reduced, so that the entire development period can be shortened in fields such as HDD development, which must be developed using the same device at the same time. You can see intangible benefits.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050003640A KR100630735B1 (en) | 2005-01-14 | 2005-01-14 | Method for providing selective access to plural devices and apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050003640A KR100630735B1 (en) | 2005-01-14 | 2005-01-14 | Method for providing selective access to plural devices and apparatus thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060083012A true KR20060083012A (en) | 2006-07-20 |
KR100630735B1 KR100630735B1 (en) | 2006-10-02 |
Family
ID=37173519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050003640A KR100630735B1 (en) | 2005-01-14 | 2005-01-14 | Method for providing selective access to plural devices and apparatus thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100630735B1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765204A (en) | 1996-06-05 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for adaptive localization of frequently accessed, randomly addressed data |
KR100614469B1 (en) | 1997-12-05 | 2006-08-25 | 동경 엘렉트론 디바이스 주식회사 | Storage device |
-
2005
- 2005-01-14 KR KR1020050003640A patent/KR100630735B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100630735B1 (en) | 2006-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20110091677A (en) | System and method for recovering solid state drive data | |
US20120117429A1 (en) | Baseboard management controller and memory error detection method of computing device utilized thereby | |
KR950009435A (en) | Method and device for controlling operation of programmed device | |
EP2183745A2 (en) | Ecc functional block placement in a multi-channel mass storage device | |
US6697971B1 (en) | System and method for detecting attempts to access data residing outside of allocated memory | |
US20070083705A1 (en) | Functional test method and functional test apparatus for data storage devices | |
KR102581576B1 (en) | Vector operand bit size control | |
KR100630735B1 (en) | Method for providing selective access to plural devices and apparatus thereof | |
US7694071B1 (en) | Disk drives and methods allowing configurable zoning | |
US9779764B2 (en) | Data write deferral during hostile events | |
EP0446250A1 (en) | Control for a rotating media storage system | |
KR102325428B1 (en) | I/o port emulating system and method using virtual hardware | |
US9977624B2 (en) | Storage control apparatus and storage control method | |
KR101539933B1 (en) | Method and apparatus for creating log on cpu hang-up | |
US20050174914A1 (en) | Recording/reproducing apparatus | |
US7617357B2 (en) | System and method for updating hard disk write parameters in the field | |
KR20030015355A (en) | Reproducing control method of optical disc driver and the optical disc driver | |
WO2021106064A1 (en) | Programmable controller | |
US20070168568A1 (en) | Computer system and communication method thereof with peripheral device | |
KR100745270B1 (en) | Method for discriminating a bad disc | |
US20050015542A1 (en) | Multiple write storage device | |
KR100691919B1 (en) | Method for discriminating a bad disc | |
KR100549723B1 (en) | Digital signal processing system with smart boot loader decreasing memory size | |
KR101949417B1 (en) | Processor, Apparatus and method for generating instruction | |
JPS59113530A (en) | Processing device of optical disc |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20090914 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |