CN101133386A - 用于主机控制器上的独立和并发数据传送的方法和装置 - Google Patents
用于主机控制器上的独立和并发数据传送的方法和装置 Download PDFInfo
- Publication number
- CN101133386A CN101133386A CNA2006800066089A CN200680006608A CN101133386A CN 101133386 A CN101133386 A CN 101133386A CN A2006800066089 A CNA2006800066089 A CN A2006800066089A CN 200680006608 A CN200680006608 A CN 200680006608A CN 101133386 A CN101133386 A CN 101133386A
- Authority
- CN
- China
- Prior art keywords
- register
- serial port
- equipment
- serial
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title description 38
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 33
- 230000006870 function Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004088 simulation Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
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)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
访问检测器检测对连接到串行存储设备的多个串行端口中的一个进行访问的访问类型。该访问意图通过并行通道的任务文件寄存器访问连接到并行存储设备的多个并行通道中的一个。映射电路将串行端口映射到并行通道。状态机基于访问类型和映射的串行端口对来自并行通道中的一个的响应进行仿真。
Description
技术领域
本发明涉及存储接口。具体而言,本发明涉及与主机控制器的接口。
背景技术
诸如软盘驱动器、硬盘驱动器和CD-ROM驱动器的存储设备通常通过电子集成驱动器(Integrated Drive Electronics,IDE)接口连接到计算机,其中电子集成驱动器(IDE)接口也称为高级技术附加装置(Advanced Technology Attachment,ATA)。并行ATA允许多达两个设备使用主/从通信技术连接到单个端口。一个ATA设备被配置为主设备(master),而另一个为从设备(slave)。这种配置允许一个设备的控制器告诉另一个设备它何时能够向计算机传送数据,或者从计算机传送数据。两个设备通过一个带状电缆菊花链式连接(daisy chained)在一起,其中带状电缆是无端接的多分支总线。这个总线或连接通常被称为并行通道。此外,个人计算机(PC)可能具有两个并行ATA通道:初级通道和次级通道。
并行ATA接口从1989年起已经以基本相同的形式存在了,并已经成为所生产的最高容量的硬盘驱动设备接口。然而,随着对更高传送和存储带宽的需求增加,并行ATA正在接近它的性能极限。引入串行ATA接口以代替并行ATA。串行ATA以点对点的方式,用单独的电缆连接两个设备中的每一个。串行ATA的优点包括高达150MB/s的高的数据传输速率(与并行ATA的100MB/s相比)、低成本、易于安装和配置、低引脚数,等。
然而,由于目前存在大量的并行ATA,所以从并行ATA到串行ATA的转变可能是个问题。为了避免转变成本并提供一个容易的迁移途径,已经对用于并行ATA的软件驱动器进行了修改以适应串行ATA,并且已经设计了新的串行ATA接口以兼容并行ATA设备。例如,硬件仿真器是一种硬件电路,其对并行ATA驱动器是操作透明的,以使得并行ATA驱动器能够像控制并行ATA设备那样控制串行ATA设备。当和并行ATA驱动器一起使用串行ATA设备时,需要独立且并发的数据传送。
附图说明
本发明的特征和优点将从下面本发明的详细描述中变得显而易见,其中:
图1是说明其中实施了本发明的一个实施例的系统的图;
图2是说明图1中所示的使用硬件仿真器的ATA控制器的图;
图3是说明图2中所示的ATA控制器中的仿真器的图;
图4是说明根据本发明的一个实施例,基于访问类型来对来自并行通道的响应进行仿真的过程的流程图;
图5是说明根据本发明的一个实施例,当访问类型是第一访问类型时,对一个响应进行仿真的过程的流程图;以及
图6是说明针对DEV位设置的软件编程次序的实施例的流程图。
具体实施方式
在下面的说明中,出于解释的目的,阐明了大量细节以提供本发明的全面理解。然而,对本领域技术人员来说显而易见的是,这些具体细节不是实现本发明所必需的。在其它实例中,为了不使本发明模糊,一些众所周知的电结构和电路以方框图的形式示出。
图1是说明其中实施了本发明的一个实施例的计算机系统100的图。计算机系统100包括处理器110、互连设备120、存储器控制集线器(MCH)130、基本输入/输出系统存储器135、系统存储器140、输入/输出控制集线器(ICH)150、串行ATA设备176和178、大容量存储设备170以及输入/输出设备1801至180K。
处理器110代表任何类型体系结构的中央处理单元,如嵌入式处理器、微控制器、数字信号处理器、超标量计算机、向量处理器、单指令多数据流(SIMD)计算机、复杂指令集计算机(CISC)、精简指令集计算机(RISC)、超长指令字(VLIW),或混合体系结构。在一个实施例中,处理器110兼容英特尔体系结构(Intel Architecture,IA)处理器,如IA-32和IA-64。处理器110通常包含许多控制寄存器,以支持存储器管理任务,如虚拟存储器和高速缓冲存储器。这些任务可以包括分页和分段。具有处理器110的芯片可以只具有一个处理器内核,或者具有多于一个处理器内核。互连设备120提供接口信号,以允许处理器110和其它处理器或设备(如MCH 130)进行通信。互连设备120可以支持单处理器或多处理器配置。互连设备120可以是并行的、顺序的、流水线的、异步的、同步的,或其任何组合。互连设备120可以是点对点的,或者可以连接到多于两个芯片。
MCH 130提供对存储器和输入/输出设备(如系统存储器140和ICH 150)的控制和配置。MCH 130可以被集成到芯片集中,该芯片集集成了多种功能,如孤立的执行模式、主机至外围设备的总线接口、存储器控制。为了清楚起见,没有示出所有的外围设备总线。可以预见,系统100还可以包括如下外围设备总线,如,外设部件互连(PCI)、加速图形端口(AGP)、工业标准体系结构(ISA)总线,以及通用串行总线(USB)等。在一个实施例中,MCH 130可以和处理器110在同一个芯片中。在一些实施例中,同一个MCH 130可以为具有多个处理器的芯片中的所有内核或处理器工作。在其它实施例中,MCH 130可以包括不同的部分,它们可以单独地为具有多个处理器的芯片中的不同内核或处理器工作。
BIOS存储器135存储引导码和数据。BIOS存储器135通常用非易失性存储器实现,如只读存储器(ROM)、闪速存储器,和其它类似的存储器。BIOS存储器135还可以存储在MCH 130内。BIOS存储器135可以包含并行ATA驱动器138,以通过ICH 150控制串行ATA设备176和178。
系统存储器140存储系统码和数据。系统存储器140通常用动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)实现。可以使用其它类型的存储器,包括那些不需要刷新的存储器。系统存储器可以包括实现本发明一个实施例的程序代码或代码段。系统存储器还可以包括并行ATA驱动器145。并行ATA驱动器145可以是操作系统(OS)或应用程序的一部分。并行ATA驱动器145通过ICH 150访问串行ATA设备176和178。BIOS存储器135中的并行ATA驱动器138和存储器140中的并行ATA驱动器145可以并存或不并存。
ICH 150具有多个功能,其被设计来支持I/O功能。ICH 150还可以和MCH 130一起或单独地集成到芯片集中,以执行I/O功能。ICH 150可以包括许多接口和I/O功能,如PCI总线接口、处理器接口、中断控制器、直接存储器存取(DMA)控制器、电源管理逻辑、定时器、通用串行总线(USB)接口、大容量存储装置接口、低引脚数(LPC)接口等。特别是,ICH 150包括ATA控制器155,用来控制串行ATA设备176和178。ATA控制器155具有与并行ATA设备驱动器后向兼容的硬件仿真器。ATA控制器155为用户提供迁移路径,以利用串行ATA接口,同时使用现有的并行ATA驱动器。
串行ATA设备176和178是大容量存储设备或硬盘,用来存储档案信息,如代码、程序、文件、数据、应用程序、操作系统等。串行ATA设备176和178通过串行ATA接口信号179连接到硬盘驱动器控制器155。串行ATA接口、协议和标准遵循如下建议草案:由串行ATA工作组于2001年4月9日发布,名称为“Serial ATA/High SpeedSerialized AT Attachment”,修订本1.0.0.1。大容量存储设备170存储其它档案信息。大容量存储设备170可以包括压缩盘(CD)ROM 172、软盘174和硬盘驱动器176,以及任何其它磁或光存储设备。大容量存储设备170提供一种机制来读取机器可读介质。
I/O设备1801至180K可以包括任何执行I/0功能的I/O设备。I/O设备1801至180K的实例包括用于输入设备(如,键盘、鼠标、跟踪球、点击设备)的控制器、介质卡(如,音频、视频、图形)、网卡,以及任何其它外围设备控制器。
在并行ATA接口上,通电后硬件或软件重置,或者在执行装置诊断(Executive Device Diagnostic)命令执行之后,从设备通过ATA带状电缆中的PDIAG导线向主设备提供诊断状态。在观察到PDIAG信号上的状态时,主设备从而更新状态和误差寄存器。对于串行ATA接口,这种两个串行ATA设备之间的直接通信并不存在。此外,在并行ATA接口上,同一通道上的两个ATA设备观察电缆上的信号活动。例如,对ATA命令块寄存器(除了数据和命令寄存器之外)的写访问被两个设备看到并接受。另一方面,在串行ATA接口中,每个串行ATA设备是独立于另一个的。
为了模拟对于并行ATA驱动器138可见的交互,ATA控制器155中的仿真器转发并操纵对两个串行ATA设备176和178的软件访问,其中两个串行ATA设备176和178被映射为虚拟ATA通道上的并行ATA设备。此外,仿真器还将串行ATA设备的中断路由至IRQ14或IRQ15。
图2是说明使用硬件仿真器210的ATA控制器155的图。ATA控制器155包括仿真器210和串行ATA主机控制器(1和2)220和230。仿真器210对并行ATA设备与并行ATA驱动器138交互时的响应进行仿真。仿真器210是硬件电路,其对并行ATA驱动器138是操作透明的,以使得并行ATA驱动器138仍然能够控制串行ATA设备176和178,如同它们是并行ATA设备一样。当ATA驱动器直接为串行ATA设备176和178写入时,仿真器210可以被禁用。
串行ATA主机控制器220和230,其也被称为串行端口,分别包含寄存器、控制电路,以及到串行ATA设备176和178的接口电路。特别是,串行ATA主机控制器220和230分别包含串行端口任务文件(1和2)225和235,其包含能够对相应的串行ATA设备176和178进行控制和配置的操作寄存器。在ATA规范中定义的一个这种寄存器是设备/磁头寄存器,其包含设备和磁头数量。
仿真器210通过端口1选择信号或端口2选择信号选择映射到并行通道的串行端口。仿真器210通过写数据信号路径将数据写入到所选择的串行端口,以及通过相应的读数据信号路径从所选择的串行端口读取数据。串行ATA主机控制器220和230向仿真器210提供状态和误差情况。
图3是说明图2中示出的ATA控制器中的仿真器210的图。仿真器210包括访问检测器310、映射电路320、仿真状态机330、仿真的任务文件寄存器集340,以及串行端口选择器350。访问检测器310检测对与串行存储设备176和178进行接口的串行端口220和230中的一个进行访问的访问类型。该访问由并行ATA驱动器138提供,并意图使并行通道中的一个通过并行通道的任务文件寄存器与并行存储设备进行接口。
映射电路320将串行端口映射到并行通道。该映射可以通过地址翻译来进行。串行端口还可以根据设备/磁头寄存器中的设备(DEV)位而被映射到主或从并行通道。
仿真状态机330基于访问检测器310检测的访问类型以及映射电路320提供的映射的串行端口,对来自并行通道中的一个的响应进行仿真。状态机330根据访问类型而包括许多状态以执行一系列操作。例如,存在着对应于根据不同访问类型的响应的仿真的若干个状态,以及一个对应于中断产生的中断状态。
仿真的任务文件寄存器集340对并行通道的任务文件寄存器进行仿真。这些寄存器可以包括关于设备(DEV)、忙碌(BSY)位和误差寄存器的信息。
串行端口选择器350基于映射电路320提供的映射的串行端口来选择串行端口220和230中的一个。例如,当并行ATA驱动器138产生对并行通道的访问时,映射电路320可以将并行通道的地址翻译为串行端口。可替换地,映射电路320可以根据设备/磁头寄存器中的设备(DEV)位进行映射。这个映射信息被直接或者经由状态机330传送给串行端口选择器350,以选择相应的串行端口。该选择可以通过启用所选择的串行ATA主机控制器220或230来执行。
图4是说明基于访问类型对来自并行通道的响应进行仿真的过程400的流程图。一开始(START),处理器400检测对映射到并行通道的串行ATA端口的访问,其中该并行通道作为主通道或从通道(框410)。该访问由并行ATA驱动器138进行。然后,过程400确定访问的类型(框420)。这可以通过解码诸如地址和读/写信息之类的访问信息来进行。访问类型可以是若干种访问类型中的一种。
过程400确定访问是否是第一访问类型,以使得它是对总线主寄存器(BM-IDE)、非数据命令寄存器和设备控制寄存器中的一个的第一读访问(框430)。该访问还可以是除了将总线主命令寄存器的START位设置为逻辑一‘1’之外对总线主寄存器(BM-IDE)、非数据命令寄存器和设备控制寄存器中的一个的第一写访问(框430)。如果是这样,则过程400仿真第一类型访问(框435),然后终止。否则,过程400确定访问是另一访问类型(框440),并仿真另一访问类型(框445)。另一访问类型可以是在通电、硬件或软件重置、或设备诊断命令的执行后,对设备/磁头寄存器的访问,或者是对状态寄存器、替换寄存器,或映射到从并行通道的所选择的串行端口的误差寄存器的访问。另一访问类型还可以是在通电、硬件或软件重置、或设备诊断命令的执行后,对状态寄存器或映射到主并行通道的串行端口的替换寄存器的读访问。另一访问类型还可以是在通电、硬件或软件重置、或设备诊断命令的执行后,对映射到主并行通道的串行端口的误差寄存器的读访问。
为了在SATA设备176或178上设置一个命令,各个主机控制器220或230通常执行一系列事件。它读取状态寄存器以确定通道不忙。它写设备/磁头寄存器以确保选择正确的设备。它写扇区数寄存器以指示将要被传送的扇区的数量。它写扇区号寄存器以装载逻辑块寻址(LBA)地址的一部分。它写柱面低位寄存器以装载LBA地址的一部分。它写柱面高位寄存器以装载LBA地址的一部分。它向命令寄存器写入将要在四个级:调度(dispatch)、开始I/O、IRQ和结束中执行的指令。
在选择之后,来自主机的命令被所选择的串行ATA设备接收。主机控制器通过使用设备/磁头寄存器中的DEV位识别两个设备。DEV位被编程以指示它想要传送数据给哪一个设备,或者想要从哪一个设备传送数据。‘0’选择设备0,其可以被指定为主设备。否则,DEV位选择设备1,其可以被指定为从设备。然而,在传统的控制器操作中,寄存器内容进入设备及其控制器。因此,在传统的控制器操作中,寄存器写被传送到主和从任务文件寄存器225和236以及BM-IDE寄存器。
图5是说明根据本发明的一个实施例,对访问类型是第一访问类型时的响应进行仿真的过程435的流程图。过程435是由图3中示出的状态机330中的第一状态执行的。一开始(START),过程435就确定访问是否是写访问(框510)。在本发明的一个实施例中,在对BM-IDE寄存器或任务文件225或235进行任何相关写操作之前写入DEV位。当DEV位等于零时,选择设备0。当DEV位等于一时,选择设备1。
因此,仿真硬件具有一种模式,其中它不将写循环传送到主和从BM-IDE寄存器和阴影(shadow)任务文件。相反,根据DEV位将写循环传送到特定设备。这与传统操作不同,在传统操作中仿真器将写循环传送到主和从设备任务文件寄存器和BM-IDE I/O寄存器。
如果访问是写访问,则过程435将数据写入到所选择的根据设备(DEV)位映射到并行通道的串行端口(框515),然后终止。基于写循环,对所选择的设备的主机寄存器集进行设置,而不是设置两个主机寄存器集。因此,可以如同彼此完全独立那样访问主和从ATA设备。从而,并发且独立的数据传送可以在两个串行ATA驱动器上进行,其中该两个串行ATA驱动器看起来是作为主和从驱动器的并行ATA驱动器。否则,如果访问是读访问,则过程435从所选择的根据DEV位映射到并行通道的串行端口读取数据(框520)。然后,过程435向访问请求者返回读取的数据,然后终止。
图6是用于完成DEV位设置的软件编程次序的一个实施例的说明。在框610中,过程600写入与所选择的设备对应的串行端口的设备/磁头寄存器的DEV位。在框620中,过程600对其它BM-IDE寄存器和相关的任务文件寄存器进行编程。在一个实施例中,过程600写入与所选择的串行端口相关的BM-IDE和任务文件寄存器。在框630中,过程600对命令任务文件寄存器进行编程,并设置BM-IDE命令寄存器的Start(开始)位。在框640中,过程600向设备/磁头寄存器的DEV位写入一个不同的值。在框650中,过程600根据需要对其它BM-IDE寄存器和相关的任务文件寄存器进行编程。在框660中,过程600对命令任务文件寄存器进行编程,并在终止之前设置BM-IDE命令寄存器的Start位。
虽然已经参考说明性实施例描述了本发明,但是描述不是意图以限制的观念来解释。对本发明所属领域中普通技术人员来说显而易见的是,所述说明性实施例的各种修改以及本发明的其它实施例都被认为是在本发明的精神和范围内的。例如,尽管上面的描述参考串行和并行ATA接口进行,但是本技术可以应用于任何点对点接口。
本发明可以由硬件、软件、固件、微代码、或其任何组合来实施。当以软件、固件或微代码实施时,本发明的要素是执行必需的任务的程序代码或代码段。代码段可以代表一个过程、一个函数、一个子程序、一个程序、一个例程、一个子例程、一个模块、一个软件包、一个类别,或者指令、数据结构或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,可以将一个代码段连接到另一个代码段或硬件电路。信息、自变量、参数、数据等可以通过任何合适的手段传递、转发或发送,其中合适的手段包括存储器共享、消息传递、令牌传递、网络传输等。程序或代码段可以存储在处理器可读介质中,或者被载波中所携带的计算机数据信号或载波调制的信号通过传输介质来传输。“处理器可读介质”可以包括能够存储或传送信息的任何介质。处理器可读介质的实例包括电子电路、半导体存储器设备、ROM、闪速存储器、可擦除ROM(EROM)、软盘、压缩盘(CD-ROM)、光盘、硬盘、光纤介质、射频(RF)链路等。计算机数据信号可以包括能够在传输介质上传播的任何信号,其中所述传输介质例如电子网络通道、光纤、空气、电磁、RF链路等。代码段可以通过诸如因特网、内联网等的计算机网络下载。
注意,本发明可以描述为一个过程,其通常可以被描写为程序框图、流程图、结构图或方框图。虽然程序框图可以将操作描述为顺序的过程,但是许多操作可以并行或并发地执行。此外,操作的顺序可以重新排列。当操作完成时,过程终止。过程可以对应于方法、函数、进程、子例程、子程序等。当过程对应于函数时,它的终止对应于将函数返回到调用函数或主函数。
Claims (20)
1.一种装置,包括:
与第一硬盘驱动器进行接口的第一主机控制器,其中为了第一数据传送操作,在对所述第一主机控制器上的其他寄存器写入之前,对所述第一主机控制器上的设备/磁头寄存器中的设备位进行写入;以及
其中基于写入到所述第一主机控制器上的设备/磁头寄存器中的数据,将传送数据写入所述第一主机控制器上的另一寄存器。
2.如权利要求1所述的装置,进一步包括:
与第二硬盘驱动器进行接口的第二主机控制器,其中为了第二数据传送操作,在对所述第二主机控制器上的其他寄存器写入之前,对所述第二主机控制器上的设备/磁头寄存器中的设备位进行写入;以及
其中基于写入到所述第二主机控制器上的设备/磁头寄存器中的数据,将传送数据写入所述第二主机控制器上的另一寄存器。
3.如权利要求2所述的装置,其中所述第一和第二硬盘驱动器是串行高级技术附加装置。
4.如权利要求2所述的装置,其中所述第一和第二数据传送操作包括并发且独立地在所述第一主机控制器和所述第一硬盘驱动器之间,以及在所述第二主机控制器和所述第二硬盘驱动器之间传送数据。
5.如权利要求2所述的装置,其中所述第一和第二硬盘驱动器中的一个被映射为主驱动器。
6.一种装置,包括:
多个并行通道;
连接到串行存储设备的多个串行端口,其中所述并行通道被映射到串行端口;
第一串行端口上的设备/磁头寄存器,其中为了第一数据传送操作,在写入所述第一串行端口上的其它寄存器之前,写入所述设备/磁头寄存器;以及
其中基于写入到所述第一串行端口的设备/磁头寄存器中的数据,访问所述第一串行端口上的另一寄存器。
7.如权利要求6所述的装置,其中访问所述第一串行端口上的另一寄存器包括向所述第一串行端口上的另一寄存器写入数据。
8.如权利要求6所述的装置,其中访问所述第一串行端口上的另一寄存器包括从所述第一串行端口上的另一寄存器读取数据。
9.如权利要求6所述的装置,进一步包括:
第二串行端口上的设备/磁头寄存器,其中为了第一数据传送操作,在写入所述第二串行端口上的其它寄存器之前,写入所述设备/磁头寄存器;以及
其中基于写入到所述第二串行端口的设备/磁头寄存器中的数据,访问所述第二串行端口上的另一寄存器。
10.如权利要求9所述的装置,其中访问所述第二串行端口上的另一寄存器包括向所述第二串行端口上的另一寄存器写入数据。
11.如权利要求9所述的装置,其中访问所述第二串行端口上的另一寄存器包括从所述第二串行端口上的另一寄存器读取数据。
12.如权利要求9所述的装置,其中所述第一和第二数据传送操作包括并发且独立地在所述第一串行端口和对应的串行存储设备之间,以及在所述第二串行端口和对应的串行存储设备之间传送数据。
13.如权利要求6所述的装置,其中在写入所述第一串行端口上的其它寄存器之前写入第一串行端口上的设备/磁头寄存器包括:向所述第一串行端口的设备/磁头寄存器中的设备位写入。
14.如权利要求14所述的装置,其中在写入所述第一串行端口上的其它寄存器之前,写入第一串行端口上的设备/磁头寄存器,包括在向所述第一串行端口的总线主寄存器或任务文件寄存器写入之前,向所述设备/磁头寄存器中的设备位写入。
15.如权利要求6所述的装置,其中访问所述第一串行端口上的另一寄存器包括访问对应于所述第一串行端口的总线主寄存器或任务文件寄存器中的至少一个。
16.一种系统,包括:
多个串行存储设备;以及
连接到所述串行存储设备的芯片集,所述芯片集具有串行存储控制器,所述串行存储控制器包括:
映射电路,用于将连接到所述串行存储设备的多个串行端口映射到多个并行通道;
连接到所述映射电路的状态机,用于基于访问类型对来自所述并行通道中的一个的响应进行仿真;
连接到所述状态机和所述串行端口的串行端口选择器,用于选择所述串行端口中的一个;以及
连接到所述状态机的多个寄存器,用于对映射到所选择的串行端口的并行通道的任务文件寄存器进行仿真,其中在写入对应的总线主寄存器或任务文件寄存器中的任何一个之前,写入所选择的串行端口的设备/磁头寄存器中的设备位。
17.如权利要求16所述的系统,其中所述状态机包括:
第一写状态,用于根据所述设备位,向映射到所述并行通道中的所述一个的所选择的串行端口写入数据;以及
第一读状态,用于根据所述设备位,从映射到所述并行通道中的所述一个的所选择的串行端口读取数据。
18.如权利要求16所述的系统,进一步包括:
将数据写入到对应于所选择的串行端口的至少一个总线主寄存器或任务文件寄存器,而不将所述数据写入到对应于另一串行端口的寄存器。
19.如权利要求16所述的系统,进一步包括:
访问检测器,用于检测对连接到所述串行存储设备的多个串行端口中的一个进行访问的第一访问类型,所述访问意图访问多个并行通道中的一个。
20.如权利要求16所述的系统,其中所述第一访问类型包括除了将总线主命令寄存器的START位设置为逻辑一之外,对总线主寄存器、非数据命令寄存器和设备控制寄存器中的一个的第一写访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/096,619 | 2005-03-31 | ||
US11/096,619 US7603514B2 (en) | 2005-03-31 | 2005-03-31 | Method and apparatus for concurrent and independent data transfer on host controllers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101133386A true CN101133386A (zh) | 2008-02-27 |
Family
ID=36694540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800066089A Pending CN101133386A (zh) | 2005-03-31 | 2006-03-31 | 用于主机控制器上的独立和并发数据传送的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7603514B2 (zh) |
JP (1) | JP2008537219A (zh) |
KR (1) | KR20070108410A (zh) |
CN (1) | CN101133386A (zh) |
DE (1) | DE112006000634T5 (zh) |
GB (1) | GB2438782B (zh) |
TW (1) | TWI334537B (zh) |
WO (1) | WO2006105548A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961984A (zh) * | 2020-07-21 | 2022-01-21 | 慧与发展有限责任合伙企业 | 主机计算系统的外围端口的访问控制 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8731506B2 (en) * | 2008-07-28 | 2014-05-20 | Marvell World Trade Ltd. | Complementary low noise transductor with active single ended to differential signal conversion |
KR101113893B1 (ko) * | 2010-05-14 | 2012-03-02 | 주식회사 노바칩스 | 반도체 칩 및 이를 구비하는 반도체 시스템 |
KR101004640B1 (ko) * | 2010-05-14 | 2011-01-03 | 주식회사 신성냉동공조 | 실내환기용 전열교환장치 |
US9116694B2 (en) | 2012-09-26 | 2015-08-25 | Intel Corporation | Efficient low power exit sequence for peripheral devices |
US9276623B2 (en) * | 2013-08-20 | 2016-03-01 | Aviacomm Inc. | Cost effective multiband RF front-end architecture for mobile applications |
US12034015B2 (en) | 2018-05-25 | 2024-07-09 | Meta Platforms Technologies, Llc | Programmable pixel array |
US11888002B2 (en) | 2018-12-17 | 2024-01-30 | Meta Platforms Technologies, Llc | Dynamically programmable image sensor |
US11962928B2 (en) | 2018-12-17 | 2024-04-16 | Meta Platforms Technologies, Llc | Programmable pixel array |
US12108141B2 (en) | 2019-08-05 | 2024-10-01 | Meta Platforms Technologies, Llc | Dynamically programmable image sensor |
US11935291B2 (en) * | 2019-10-30 | 2024-03-19 | Meta Platforms Technologies, Llc | Distributed sensor system |
US11948089B2 (en) | 2019-11-07 | 2024-04-02 | Meta Platforms Technologies, Llc | Sparse image sensing and processing |
US11825228B2 (en) | 2020-05-20 | 2023-11-21 | Meta Platforms Technologies, Llc | Programmable pixel array having multiple power domains |
US12075175B1 (en) | 2020-09-08 | 2024-08-27 | Meta Platforms Technologies, Llc | Programmable smart sensor with adaptive readout |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2246494B (en) * | 1990-05-25 | 1994-08-31 | Silicon Systems Inc | Method and apparatus for serial communications |
GB2288954B (en) * | 1994-04-15 | 1998-10-14 | Vlsi Technology Inc | Method and apparatus for providing programmable serial communications |
US5604870A (en) * | 1994-08-01 | 1997-02-18 | Moss; Barry | UART emulator card |
JPH11282632A (ja) * | 1998-03-27 | 1999-10-15 | Sony Corp | インターフェース装置及び制御方法並びに記録再生装置 |
WO2000025431A1 (en) * | 1998-10-23 | 2000-05-04 | Octave Communications, Inc. | Serial-to-parallel/parallel-to-serial conversion engine |
US6772108B1 (en) * | 1999-09-22 | 2004-08-03 | Netcell Corp. | Raid controller system and method with ATA emulation host interface |
AU7714700A (en) * | 1999-09-22 | 2001-04-24 | Netcell Corp. | Raid controller system and method with ata emulation host interface |
US6772258B2 (en) * | 2000-12-29 | 2004-08-03 | Intel Corporation | Method and apparatus for sharing an interrupt between disk drive interfaces |
US6854045B2 (en) * | 2001-06-29 | 2005-02-08 | Intel Corporation | Hardware emulation of parallel ATA drives with serial ATA interface |
US6961787B2 (en) * | 2002-01-07 | 2005-11-01 | Intel Corporation | Method and apparatus for updating task files |
DE10214700B4 (de) * | 2002-04-03 | 2006-02-23 | Advanced Micro Devices, Inc., Sunnyvale | Kombinierter ATA/SATA-Controller als integrierter Schaltkreischip und dazugehöriges Verfahren zum Betreiben |
AU2003217839A1 (en) * | 2002-04-03 | 2003-10-20 | Advanced Micro Devices, Inc. | Ata/sata combined controller |
US7020357B2 (en) * | 2003-04-01 | 2006-03-28 | Dell Products L.P. | Coupling device for an electronic device |
US7496691B2 (en) * | 2003-07-28 | 2009-02-24 | Lsi Corporation | Standard ATA queuing automation in serial ATA interface for creating a frame information structure (FIS) corresponding to command from transport layer |
JP2005056519A (ja) * | 2003-08-06 | 2005-03-03 | Fujitsu Ltd | ストリーム系コマンドを使用する場合の読取処理方法及び媒体記憶装置 |
JP2005346123A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ |
US20060075164A1 (en) * | 2004-09-22 | 2006-04-06 | Ooi Eng H | Method and apparatus for using advanced host controller interface to transfer data |
-
2005
- 2005-03-31 US US11/096,619 patent/US7603514B2/en not_active Expired - Fee Related
-
2006
- 2006-03-31 JP JP2008504542A patent/JP2008537219A/ja active Pending
- 2006-03-31 WO PCT/US2006/012994 patent/WO2006105548A1/en active Application Filing
- 2006-03-31 KR KR1020077022323A patent/KR20070108410A/ko not_active Application Discontinuation
- 2006-03-31 GB GB0717767A patent/GB2438782B/en active Active
- 2006-03-31 DE DE112006000634T patent/DE112006000634T5/de not_active Ceased
- 2006-03-31 TW TW095111610A patent/TWI334537B/zh not_active IP Right Cessation
- 2006-03-31 CN CNA2006800066089A patent/CN101133386A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961984A (zh) * | 2020-07-21 | 2022-01-21 | 慧与发展有限责任合伙企业 | 主机计算系统的外围端口的访问控制 |
CN113961984B (zh) * | 2020-07-21 | 2023-09-12 | 慧与发展有限责任合伙企业 | 主机计算系统及用于主机计算系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2006105548A1 (en) | 2006-10-05 |
TWI334537B (en) | 2010-12-11 |
GB2438782A (en) | 2007-12-05 |
KR20070108410A (ko) | 2007-11-09 |
TW200708958A (en) | 2007-03-01 |
US20060224792A1 (en) | 2006-10-05 |
GB0717767D0 (en) | 2007-10-24 |
GB2438782B (en) | 2008-09-10 |
DE112006000634T5 (de) | 2008-02-14 |
US7603514B2 (en) | 2009-10-13 |
JP2008537219A (ja) | 2008-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101133386A (zh) | 用于主机控制器上的独立和并发数据传送的方法和装置 | |
US6854045B2 (en) | Hardware emulation of parallel ATA drives with serial ATA interface | |
EP1189132B1 (en) | Shared peripheral architecture | |
CN108121672B (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
JP5128079B2 (ja) | ユニバーサルストレージバスアダプタ | |
US5875349A (en) | Method and arrangement for allowing a computer to communicate with a data storage device | |
CN102231142B (zh) | 一种带有仲裁器的多通道dma控制器 | |
EP0588472B1 (en) | Personal computer with programmable threshold fifo registers for data transfer | |
US4006466A (en) | Programmable interface apparatus and method | |
US6922738B2 (en) | ATA/SATA combined controller | |
JPH06309267A (ja) | I/o装置と拡張記憶装置又は主記憶装置の間でデータを転送する方法 | |
CN1650276B (zh) | Ata/sata组合控制器 | |
JP2003296191A (ja) | 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路 | |
US5146605A (en) | Direct control facility for multiprocessor network | |
CN102999453A (zh) | 用于系统芯片集成的通用非易失性存储器控制装置 | |
CN115454902A (zh) | 一种基于pcie接口的nvme通信系统及方法 | |
CN207008602U (zh) | 一种基于NandFlash存储器多通道的存储阵列控制装置 | |
CN103092781A (zh) | 闪存接口的有效利用 | |
CN100432970C (zh) | 流水线化的ata设备初始化平台和装置 | |
JP2001306265A (ja) | 記憶制御装置および記憶制御装置の制御方法 | |
KR20230034386A (ko) | 레지스터 데이터 소거 | |
CN100514362C (zh) | 具有独立输出的交换开关系统及其方法 | |
CN115586867B (zh) | NVMe控制器 | |
CN102880574A (zh) | 利用gpio模拟低速并行接口的方法 | |
EP1288774A2 (en) | Integrated drive controller for systems with integrated mass storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |