Hard Disk Controller: the Disk Drive s Brain and Body



Similar documents
NAND Flash FAQ. Eureka Technology. apn5_87. NAND Flash FAQ

A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware

Machine Architecture and Number Systems. Major Computer Components. Schematic Diagram of a Computer. The CPU. The Bus. Main Memory.

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Price/performance Modern Memory Hierarchy

A New Chapter for System Designs Using NAND Flash Memory

Serial Communications

What is a System on a Chip?

Computer Organization & Architecture Lecture #19

Objective. Testing Principle. Types of Testing. Characterization Test. Verification Testing. VLSI Design Verification and Testing.

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

760 Veterans Circle, Warminster, PA Technical Proposal. Submitted by: ACT/Technico 760 Veterans Circle Warminster, PA

Chapter 4 System Unit Components. Discovering Computers Your Interactive Guide to the Digital World

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Chapter 1 Computer System Overview

Universal Flash Storage: Mobilize Your Data

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

CSCA0102 IT & Business Applications. Foundation in Business Information Technology School of Engineering & Computing Sciences FTMS College Global

Discovering Computers Living in a Digital World

A Real Time, Object Oriented Fieldbus Management System

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-17: Memory organisation, and types of memory

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

DDR subsystem: Enhancing System Reliability and Yield

1 of :01

OpenSPARC T1 Processor

COS 318: Operating Systems. Storage Devices. Kai Li Computer Science Department Princeton University. (

7a. System-on-chip design and prototyping platforms

1.Introduction. Introduction. Most of slides come from Semiconductor Manufacturing Technology by Michael Quirk and Julian Serda.

BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH

Choosing the Right NAND Flash Memory Technology

VLSI Design Verification and Testing

Forensic Imaging of Hard Disk Drives

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, Copyright (C) All Rights Reserved

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 13-1

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

Serial port interface for microcontroller embedded into integrated power meter

Testing of Digital System-on- Chip (SoC)

================================================================

Chapter Introduction. Storage and Other I/O Topics. p. 570( 頁 585) Fig I/O devices can be characterized by. I/O bus connections

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

Chap-02, Hardware and Software. Hardware Model

Performance Report Modular RAID for PRIMERGY

Implementation Details

Booting from NAND Flash Memory

National CR16C Family On-Chip Emulation. Contents. Technical Notes V

Computer Systems Structure Main Memory Organization

Windows Server Performance Monitoring

Slide Set 8. for ENCM 369 Winter 2015 Lecture Section 01. Steve Norman, PhD, PEng

Chapter 13. Chapter Outline. Disk Storage, Basic File Structures, and Hashing

Handout 17. by Dr Sheikh Sharif Iqbal. Memory Unit and Read Only Memories

CHAPTER 2: HARDWARE BASICS: INSIDE THE BOX

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 5 Storage Devices

Computer Systems Structure Input/Output

SDLC Controller. Documentation. Design File Formats. Verification

Testing Low Power Designs with Power-Aware Test Manage Manufacturing Test Power Issues with DFTMAX and TetraMAX

TECHNOLOGY BRIEF. Compaq RAID on a Chip Technology EXECUTIVE SUMMARY CONTENTS

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

Communicating with devices

SAN Conceptual and Design Basics

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

MULTIPLE CHOICE FREE RESPONSE QUESTIONS

Computer Basics: Chapters 1 & 2

DELL RAID PRIMER DELL PERC RAID CONTROLLERS. Joe H. Trickey III. Dell Storage RAID Product Marketing. John Seward. Dell Storage RAID Engineering

1 PERSONAL COMPUTERS

Network connectivity controllers

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Chapter 13 Disk Storage, Basic File Structures, and Hashing.

TEST CHAPTERS 1 & 2 OPERATING SYSTEMS

Programming Interface. for. Bus Master IDE Controller. Revision 1.0

OCZ s NVMe SSDs provide Lower Latency and Faster, more Consistent Performance

Chapter 13 Selected Storage Systems and Interface

An Introduction to MPLAB Integrated Development Environment

M68EVB908QL4 Development Board for Motorola MC68HC908QL4

Technologies Supporting Evolution of SSDs

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

Chapter 11 I/O Management and Disk Scheduling

Dependable Systems. 9. Redundant arrays of. Prof. Dr. Miroslaw Malek. Wintersemester 2004/05

Memory Systems. Static Random Access Memory (SRAM) Cell

JTAG Applications. Product Life-Cycle Support. Software Debug. Integration & Test. Figure 1. Product Life Cycle Support

Silent data corruption in SATA arrays: A solution

Spacecraft Computer Systems. Colonel John E. Keesee

Chapter 13. Disk Storage, Basic File Structures, and Hashing

Types Of Operating Systems

What is LOG Storm and what is it useful for?

File System & Device Drive. Overview of Mass Storage Structure. Moving head Disk Mechanism. HDD Pictures 11/13/2014. CS341: Operating System

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

Key Factors for Industrial Flash Storage

CPS104 Computer Organization and Programming Lecture 18: Input-Output. Robert Wagner

Open Flow Controller and Switch Datasheet

Exploring the Remote Access Configuration Utility

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure

Architectures and Platforms

Bootloader with AES Encryption

CMS Central Monitoring System

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1

Security & Chip Card ICs SLE 44R35S / Mifare

Using the CoreSight ITM for debug and testing in RTX applications

COS 318: Operating Systems. Storage Devices. Kai Li and Andy Bavier Computer Science Department Princeton University

Ways to Use USB in Embedded Systems

Transcription:

Hard Disk Controller: the Disk Drive s Brain and Body James Jeppesen; Walt Allen; Steve Anderson; Michael Pilsl nfineon Technologies; Memory Products, Network and Computer Storage 600 South Airport Road; Suite #205; Longmont, Colorado USA (James. Jeppesen; Walt.Allen; Steve.Anderson; Michael. Pilsl) @infineon. corn Abstract ntegration of the Hard Disk Controller (HOC) today has taken on an extensive amount of functionality. From the host interface, error correction code, disk sequencer, microprocessor(s), servo control logic, buffer controller, to the embedded memory, the HDC has become a true system on a chip. Depending on the product, embedded DRAM is used as buffering for data between the host and media and possibly for storing controller firmware. By bringing all these blocks into one chip, pin counts can be reduced and higher dataflow speeds can be obtained by decreasing the interconnect delays. However, the challenge for designers is in test and verification of the design during development and production. 1. ntroduction Computer mass storage devices once took up an area about the size of a 2-drawer legal file cabinet back in the 1980 s. A current drive produced for digital cameras is smaller than a credit card, about the depth of a 3 % inch floppy, and holds at least 10 times the data-all at a reduced cost. n 1995, a -400 MB drive cost nearly $500. Now, a 20 GB drive can be bought for only $150. What has enabled the manufacturers to achieve such changes? One area is system integration. The hard disk controller (HDC) has experienced rapid integration as driven by cost reductions. Moving from a six-chip design, the current HDC solution is one chip. Future products will integrate the readwrite channel into the HDC further reducing the total number of parts the hard disk drive (HDD) will require to perform its function. The paper presented here will look at the current scale of integration and the testability issues created by this integration. 2. HDC Functional Block Description The Hard Disk Controller today is made up of the following common blocks: Host nterface, Buffer Controller, Disk Sequencer, Error Correction Code (ECC), Servo Control, Central Processing Unit (CPU), Buffer Memory, and CPU memory. See Figure 1 for a block diagram of a disk drive. 2.1. Host nterface The host interface s primary function is to provide a standard protocol for the Disk Drive to talk to a host system. The host system can be anything from a server or PC to a simple peripheral or consumer product--such as a printer or digital camera. There exists a number of distinct protocols in the disk drive industry for performing this link. Some of the major interfaces are ATA, SCS, and Serial interfaces. The main driver between selecting which interface to use is cost to performance. The design trend for the host interface is to have multiple interface blocks. Each block supports a particular host protocol and has a standard back end interface to the rest of the HDC. This allows for maximum synergy among designs. Depending on the interface chosen and the performance desired, the size of the host interface can vary dramatically from a few thousand gates to over a hundred thousand gates. Currently, the host interface is the only block that is covered by any kind of published industry standard--albeit many different public standards. These standards define physical transfers, required registers, and command sets. 2.2. Buffer Controller The main function of the buffer controller is to provide arbitration and raw signal control to the bank of buffer memory. This memory can be Static Random Access Memory ( S U M ), Dynamic Random Access Memory (DRAM), or Embedded memory. Typically the host interface, disk sequencer, ECC, and CPU all need access to this buffer memory. The buffer controller, under some priority scheme, will prevent these blocks from colliding while accessing the memory buffer. This block may also contain logic to help with the automation of moving data to and from the host. The size of this block can vary depending on the number of memory configurations supported by a single controller. The system throughput and performance can be greatly affected by this block. 0-7695-1200-3/01$10.00 Q 2001 EEE 262

Head Disk Assembly PCB Motor Control Servo Control 8 Demodulator Variable Store ATA, etc. Figure 1. Hard disk drive subsystem 2.3. Disk Sequencer The main task of the disk sequencer is to oversee and manage the transfer of data between the disk interface (referred to in this paper as the NRZ pins) and the data buffer. The term, NRZ, is defined as non-return to zero. The NRZ bus has become a normal name for the 8-bit data interface between the read/write channel and the HDC. For a disk write operation, the disk sequencer takes user data, appends additional fields such as ECC bytes, and writes out the newly formatted data to the media interface through the NRZ pins. (NRZ is defined as non-return to zero.) Conversely for a disk read operation, the disk sequencer reads formatted data from the NRZ pins and converts it back into user data that is then sent to the host interface. The process is complicated by the fact that disk media has servo wedges written on it that cannot be over written by user data. (Servo wedges, typically 50-80 per revolution, contain gain control information for the readwrite channel; cylinder/track location information; and head alignment patterns. The servo wedges are written at the factory by special equipment called, Servo Writers. ) The user data sometimes must be split on either side of these servo wedges. The disk sequencer handles the split data fields for both read and write operations. Furthermore, since the spinning disk cannot be throttled, the data rate from and to the disk must remain constant. The sequencer is in charge of pulling data from registers, data buffers, and the ECC block at precise times in a disk write operation, and in charge of sending the NRZ data to the correct blocks during a disk read operation. The disk sequencer is often referred to as the disk formatter. 2.4. ECC (Error Correction Code) n terms of a single function, the ECC is one of the largest blocks of an HDC controller. This block is responsible for appending ECC symbols to the user data and also to check and, if needed, correct the user data before it is returned to the host. The ECC size is greatly affected by the chosen correction capable of the hardware and the amount of software intervention required to perform the correction. Along with ECC syndromes, this block often contains some type of Cyclic Redundancy Check (CRC) function to keep the probability of miscorrection to an acceptably low level. Current disk drives are specifying a nonrecoverable read error of 1 in l O 4 bits read [2]. 2.5. Servo Control The servo control block has a lot of different definitions depending on the particular implementation. n this paper, 263

the servo block refers to general logic used in aiding the spinning of the discs and in the positioning of the actuator on the disc. t does not refer to the power devices necessary to drive the spindle motors. This block is uniquely customized to the particular customer s strategy for motion control d the Head Disk Assembly (HDA). Therefore, it is difficult to standardize and thus lends itself to an Application Specific Standard Product (ASSP) strategy. 2.6. CPU (Central Processing Unit(s)) The CPU of the HDC can be implemented in multiple ways. Single %bit, 16-bit, or 32-bit microprocessors and Digital Signal Processors (DSP) have been used, as well as combinations of these cores. These cores are used to control the overall system or may have a very specific task. The CPU has the highest gate count of all the logic blocks except memory. t is also the most complex from a simulation and integration standpoint. 2.7. Buffer Memory The buffer memory is used as a temporary storage of the user s data either on its way to the disc or returning to the host. This memory may also serve as variable storage or even code execution space for the CPU. This memory traditionally has been made up of both SRAM and DRAM. The buffer memory can be either external or embedded within the HDC. By embedding the memory, a higher throughput to the buffer is possible. However, embedding the memory increases the integration and testing difficulties. 2.8. CPU Memory The CPU memory can be made up of Read Only Memory (ROM), SRAMs, Flash, or DRAMS. Also, any combination of these memory types can be utilized in the product design. This memory is where the op-codes for the CPU are stored for execution. Currently, some sort of non-volatile memory is required. However, the use of volatile memory to supplement the non-volatile memory is becoming standard. The benefit of this volatile memory is that it can be changed often, execution performance increased, and manufacturing costs reduced. f volatile memory is available, it quite often doubles as code variable storage for the CPU. 3. The Challenge of ntegration ntegration of more and more HDC functional blocks into a single chip is not without issues. While integration can lead to cost savings, if not managed appropriately, it can lead to cost increases, or even failure of the project. As each module was integrated over the years, the externally observable connections were no longer available for test. This forced the designer to find alternative methods for testability without adding significant cost to the final product. The testability issues have different objectives: development tests for the designer to prove function; wafer tests which ensure the die was successfully manufactured; final assembly tests to verify the customer receives a functional part; and fnally a means for the customer to develop and debug application firmware/software on the embedded microprocessor. We will now look at the process for developing the product in greater detail and each of the testability objectives. 3.1. Development Phase The development phase sets the objectives for the project. Major concerns include team make-up, features required for the product, and test methodology from both a producer and customer viewpoint. Team make-up has implications on the overall design methodology. f multi-sites are involved in the design of the project, functions must be carefully chosen to streamline the utilization of the resources within each site. Often, more than one geographical site is utilized, which may or may not extend across international borders, in the development of products. To control the design process, version control packages track the updates to the design as each designer releases their module for general use. Without version control, an accidental bug placed into the design can take many man-hours to locate and correct, impacting all engineers on the team. The definition of the product takes on a new dimension in an integrated part. Defining the features includes package selection and testing, which are all required before design can begin. How is this different from the non-integrated process? Package selection impacts the number of pins available for functional and testing use. Heat dissipation concerns limit features based on cost of packages needed to handle the thermal load. The non-integrated design could use a chip clip and a logic analyzer as a testing plan. Of course, the integrated part has most module interconnects hidden from the outside world. (We will look at testing issues later in this section.) Once the definition and design has been completed, the conversion to hardware begins. Most of us have seen HDL to netlist flows. Highlighting some important aspects of the flow shown in Figure 2, static timing analysis (STA) and formal verification have become a very important step in the 264

development of the highly integrated HDC. STA is a fast method of inspecting the inter-module and intra-module timings, clock skew, and test mode timings created during synthesis. From STA, more exact timing constraints can be produced to improve the synthesis of the netlist during subsequent synthesis operations. Formal verification ensures the HDL code matches the netlist created. Formal verification is very useful as patches to the netlist and HDL occur. Once the netlist is laid out and true timings are available. another flow is followed to verify the results. b HDL 4 4 Functional Tests n the layout flow shown in Figure 3, STA and formal verification are the main tools used to ensure the layout meets the design function and timing requirements. Since STA and formal verification are performed, the running of functional tests is not really necessary to prove the layout in design terms. However, one should perform these tests as an extra measure of confidence. Adjust Layout Back-annotated Ne tlis t 4 Static Timing Analysis Debug netlist issues L Functional Tests HDL design Functional Tests T 1 Debug HDL to hardware issues.. Tests 1 Yes Formal Verification between pre and correct Back-annotated Netlist Complete Verification between HDL and correct U Layout netlist Figure 2. HDL to netlist flow. Figure 3. Layout to release flow 3.2. Test point of view As referred to earlier in this paper, testability issues are a main part of the development phase. Three points of view need to be considered when planning testability. First, the design engineers must formulate tests to verify the functionality of the chip. Next, test engineers need wafer and production tests to verify that the silicon was manufactured correctly. Finally, the customer s viewpoint needs to be considered--both for demonstrating a quality 265

working part in the disk drive system and for creation and debug of application firmware. Each viewpoint must be addressed to deliver a product that meets or exceeds the customer s expectations in terms of quality and ease of application. The designer of each module within the HDC creates tests that verify the functional aspect of their design. These functional tests are typically created for use in a simulation environment. However, many of these functional tests have been converted to run on a production tester. Thus, the designer must keep in mind only pins exposed on the package should be used in the functional tests created. Special test modes can be added to the design that change the configuration of the pins to expose normally buried signals. Care should be taken to minimize the creation of these modes. Each special start up required to enter test modes takes up time on the production tester. Production test time is a major factor in final part cost. The next viewpoint addressed is the production tester. Once the design has been transferred to a wafer, patterns are run to determine which dies have been successfully produced before packaging. Wafer tests may include scan vectors, functional vectors, DDQ current test, and built in self-tests (BST). Scan vectors are generated through automatic test pattern generation (ATPG) software tools. f the designer has created the design with scanability in mind, over 90% of the logic can be tested through the ATPG patterns. Once packaged, the viewpoint changes to delivering a quality product to the customer. As stated earlier, the designer must have thought through test methodologies to catch parts that are marginal or damaged through the packaging process. The designer must also consider the application in which the product is intended to function. The designer needs to add features to assist firmware/software engineers in developing the HDC into the final disk drive. Let s consider these closer. Even though a die has passed the test vectors while part of a wafer, a die may have marginal characteristics that will cause it to fail under stress. A standard method for creating the stress is the burn in process. Special tests are created to exercise the part during the burn in process. The object of these tests is b exercise as much logic as possible while the part is exposed to the stress. Once the burn in process is complete, tests are run to remove parts that suffered from infant-mortality (failures caused by the stress). From the viewpoint of the customer utilizing the packaged part, one of the first problematic items to become integrated was the microprocessor. As long as the external memory bus is brought out to an external ROM device of some sort, the troubleshooting issues are minimized because the primary interface and partitioning of logic is viewable, probe-able, and therefore analyzable. Now real problems start when any sort of memory, such as embeddedcode SRAM, is pulled into the device, and for pin savings, or timing margin, the designer chooses to eliminate this visibility. This visibility issue pertains to every major integration carried out in the modern system on a chip. With integration, the complexity increases, the visibility decreases, and system debug truly becomes the nightmare of the firmware/systems/test engineers. Now that we have identified a root drawback to highlyintegrated chips, from the troubleshooting aspect, what can we do about it? One familiar approach is to apply Built-n- Self-Test (BST) to memory devices. On the old nonintegrated system, if one wrote an AAh to a memory device, then read back an A8h, the faulty bit of the memory device or CPU chip is clearly evident. When it is shown that the Ash is evident at the pin of the memory device, replace the device. When the BST fails, the memory or the BST logic has a problem. f the BST passes, and the CPU still fetches bad data, interface logic should be examined. One drawback is that pattern sensitivities may exist with patterns that are not tested in the BST. This results in a BST pass condition, while system execution fails. Another employed technique is the implementation of a test multiplexor. This logic dedicates a small number of pins to the presentation of a predetermined subset of important internal signals. This is extensively used in testers to increase test coverage, while decreasing test time. However, if systemdfirmware engineers are incorporated in the process of choosing these signals, critical system debug visibility can be achieved as well. Drawbacks include not having the necessary signals to view the particular bug of the day, as well as having signals that need to be examined together that have different select settings for the multiplexor. Keep in mind, there can be hundreds of internal signals of interest, yet only a handful of pins for these signals to be multiplexed out upon. Therefore, it is imperative to plan this test strategy carefully. One of the simplest items to implement is increased register visibility from the CPU, by the firmware. Unfortunately, many chips today are created with write-only registers. This hinders firmware creation and debug, while only saving minimal logic area. Another method to increase visibility is to insure that FFOs are readable from first cell to last cell. As FFOs are often used as an important part of the partitioning interface between logic blocks, this functionality can be used to isolate faulty logic to the source block. Visibility of state machine states can be a reward, as well. While understanding a CPU might not have the resolution to capture every phase, it can show when state machines receive unexpected states and end up in unexpected places. Drawbacks mainly include the increased code space and 266

execution time, which alter the behavior of many real-time systems. For debugging time-critical fimctional areas, this technique generally should not be applied. f a design is core limited, extra signals can be brought out to supplementary /O pads. A secondary test package can be chosen to present these signals to the outside world. Once debug is complete, the original production package can be shipped with the original die. f time and cost constraints are met, this can be an extremely low risk methodology of increasing visibility. Along these lines, even special ball grid array (BGA) substrates have been produced to bring out microprocessor trace functionality, creating the visibility to track CPU flow and op-code execution results. On-Chip Debug Systems (OCDS) are becoming available to manage the embedded processor isibility problems. Some features existing today include on-the-fly access to any memory location or internal register, realtime hardware breakpoints, virtually unlimited software breakpoints, and more. f your system includes this capability, requirements for external memory bus visibility becomes a low priority, in most cases. CO-verification, the utilization of firmware and hardware in a system environment, is growing in popularity. The impetus comes primarily in making parallel, the current serial cycle of developing hardware and then developing firmware, in an effort to further reduce development times. While this has been shown to reduce development times in complex/expensive efforts, it should be viewed as another mechanism for creating visibility of all nodes in an integrated environment--nodes that just could not be seen any other way. Even with these techniques at hand, management should schedule sufficient time for increased testing and debugging. No longer can the engineer or technician just place a test clip on the offending device and see the bug. Many of these techniques, can only be applied in conjunction with writing specific code segments. This process alone increases time. Techniques such as coverification increase testing time and must be managed. ncreasing utilization of these techniques increases visibility; yet recoup costs, by savings in pins, packages, and potential silicon spins. 4. Conclusion ntegration has brought the price of the hard disk drive down for the consumer. This paper has shown how designers have dealt with the integration in terms of testability and design flow. As integration continues to bring more functionality into the HDC, designers will need to manage the testability issue. New methods for tackling the three viewpoints (designer, production, and customer) are waiting to be found. 5. Acknowledgement The authors wish to express our thanks to Chuck Gravelle for his editing efforts and Donna Ape1 for her help in generating figures used in this paper. 6. Literature 113 M. Pilsl and B. Rohfleisch (1999), Embedded DRAMS for Hard Disk Drive (HDD) Controllers, DA C Tutorial Presentation 99. [2] Seagate Technology, Barracuda ATA Family Product Manual, Rev. B, Seagate Technology, May 2000. 267