USRE47659E1 - Memory system having high data transfer efficiency and host controller - Google Patents

Memory system having high data transfer efficiency and host controller Download PDF

Info

Publication number
USRE47659E1
USRE47659E1 US15/462,431 US201715462431A USRE47659E US RE47659 E1 USRE47659 E1 US RE47659E1 US 201715462431 A US201715462431 A US 201715462431A US RE47659 E USRE47659 E US RE47659E
Authority
US
United States
Prior art keywords
descriptor
data
command
system memory
memory device
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.)
Active
Application number
US15/462,431
Inventor
Akihisa Fujimoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to US15/462,431 priority Critical patent/USRE47659E1/en
Assigned to TOSHIBA MEMORY CORPORATION reassignment TOSHIBA MEMORY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KABUSHIKI KAISHA TOSHIBA
Priority to US16/559,092 priority patent/USRE48736E1/en
Application granted granted Critical
Publication of USRE47659E1 publication Critical patent/USRE47659E1/en
Assigned to TOSHIBA MEMORY CORPORATION reassignment TOSHIBA MEMORY CORPORATION CHANGE OF NAME AND ADDRESS Assignors: K.K. PANGEA
Assigned to KIOXIA CORPORATION reassignment KIOXIA CORPORATION CHANGE OF NAME AND ADDRESS Assignors: TOSHIBA MEMORY CORPORATION
Assigned to K.K. PANGEA reassignment K.K. PANGEA MERGER (SEE DOCUMENT FOR DETAILS). Assignors: TOSHIBA MEMORY CORPORATION
Priority to US17/396,421 priority patent/USRE49875E1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Definitions

  • Embodiments described herein relate generally to a host controller and memory system to be applied to, e.g., a SDTM card, and supporting advanced direct memory access (ADMA).
  • a host controller and memory system to be applied to, e.g., a SDTM card, and supporting advanced direct memory access (ADMA).
  • ADMA advanced direct memory access
  • SD cards such as SD memory cards are widely used in, e.g., cell phones and digital still cameras as host devices.
  • This SD card is connected to a host device via a host controller, and the host controller controls data transmission between the host device and SD memory card.
  • FIG. 1 is a schematic view showing the arrangement of a memory system according to an embodiment
  • FIG. 2 is a schematic view showing the memory maps of a system memory and memory card
  • FIG. 3 is a view showing the structure of a descriptor according to the embodiment.
  • FIG. 4 is a schematic view showing the arrangement of ADMA shown in FIG. 1 ;
  • FIG. 5 is a flowchart showing the operation of ADMA.
  • a system memory installed in a host device is managed by paging. Therefore, data in the system memory is fragmentarily managed page-by-page.
  • a host controller supports DMA algorithm capable of data transfer managed page-by-page. That is, data fragmented in the system memory can be transferred by DMA by using a descriptor as a data transfer list.
  • ADMA has been developed in order to eliminate this problem.
  • ADMA has a function of transferring data to fragmented data areas in the system memory by paging, in accordance with one read/write command of an SD card. Accordingly, ADMA controls data transfer between the host controller and system memory without any interrupt to the CPU by loading the descriptor in the system memory.
  • a host driver controls the issue of a command to the memory card by setting a register set in the host controller, thereby controlling data transfer between the host controller and memory card, and interruption to the CPU has been used. This method poses no problem when the bus performance is low as in a conventional memory.
  • the processing of the host driver generates an overhead. Since it is not always possible to continuously use the area of the memory card, a memory command must be divided into a plurality of memory commands. To control command issue to the memory card by the host driver, the host driver must be executed by causing the host CPU to generate an interrupt midway along data transfer. Therefore, it takes a certain time to respond to the interrupt. This deteriorates the performance because of the influence of the waiting time of the driver processing even when using a high-speed bus.
  • a memory system includes a host controller and DMA unit.
  • the host controller includes a register set configured to control command issue to a device, and a direct memory access (DMA) unit configured to access a system memory, and controls transfer between the system memory and the device.
  • DMA direct memory access
  • First, second, third and fourth descriptors are stored in the system memory.
  • the first descriptor includes a set of a plurality of pointers indicating a plurality of second descriptors.
  • Each of the second descriptors comprises the third descriptor and fourth descriptor.
  • the third descriptor includes a command number, a command operation mode, and an argument as information necessary to issue a command to the device, and a block length and the number of blocks as information necessary for data transfer.
  • the fourth descriptor includes information indicating addresses and sizes of a plurality of data arranged in the system memory.
  • the ADMA unit sets, in the register set, the contents of the third descriptor forming the second descriptor, from the head of the first descriptor as a start point, and loads and transfers data from the system memory in accordance with the contents of the fourth descriptor.
  • FIG. 1 schematically shows the memory system according to this embodiment.
  • This embodiment makes it possible to issue SD commands by a host controller during DMA transfer by extending a descriptor capable of data transfer of a system memory, thereby reducing the overhead caused by host driver processing.
  • a system controller 11 shown in FIG. 1 controls interfaces with a CPU 12 , system memory 13 , and SD controller 14 .
  • the system memory 13 stores a host driver 21 , descriptor table 22 , and data 23 .
  • An operating system (OS) secures areas required to store the host driver 21 , descriptor table 22 , and data 23 in the system memory 13 .
  • the host driver 21 is a driver provided for, e.g., the SD host controller 14 and unique to the OS, and is executed by the CPU 12 .
  • the host driver 21 generates the descriptor table 22 before executing ADMA (to be described later).
  • the descriptor table 22 is a list of information necessary for data transfer between the system memory 13 and an SD card, and is described by format which can be interpreted by the SD host controller. The structure of the descriptor table 22 will be described later.
  • the SD host controller 14 has a function of bidirectionally transferring data between the system memory 13 and an SD card by using SD commands.
  • the SD host controller 14 mainly includes a system bus interface circuit 31 , a memory card interface circuit 32 , a register set 33 including a plurality of registers, an ADMA 34 , and a timer 35 .
  • the system bus interface circuit 31 is connected to the system controller 11 via a system bus.
  • the memory card is interface circuit 32 is connectable to SD cards, e.g., an SD memory card 15 and SDIO card 16 , via an SD bus interface (not shown).
  • the SD bus interface is not limited to 4-bits type, but can be applied to e.g. UHS (Ultra High Speed)-II using LVDS (Low Voltage Differential Signaling) system. In UHS-II, commands are transferred in packet form.
  • the register set 33 of the SD host controller 14 is classified into a plurality of units (not shown) such as an SD command generation unit, response unit, buffer data port unit, host control unit, interrupt control unit, and ADMA unit.
  • Information such as a command number, command mode, and argument necessary to issue an SD command and information such as a block length and the number of blocks necessary to transfer data are set in the SD command generation unit of the register set 33 .
  • the SD command generation unit issues a command to an SD card.
  • the response unit in the register set 33 receives a response supplied from the SD card in response to the command.
  • the ADMA 34 is a circuit for transferring data between an SD card and the system memory 13 without any intervention of the CPU 12 .
  • the ADMA 34 executes data transfer in accordance with contents described in the descriptor table 22 in the system memory 13 .
  • the timer 35 detects a timeout error. For example, the timer 35 detects a timeout error if the operation of a read command is not complete within a time set from the issue to the end of the read command.
  • the CPU 12 is notified of this timeout error by an interrupt, and the timeout error is processed by the host driver.
  • FIG. 2 shows an example of the relationship between paging management of the system memory 13 and SD physical addresses.
  • the system memory 13 is managed by paging for each small area, e.g., a 4-Kbyte area.
  • An application executed by the host CPU 12 accesses the system memory 13 by a logical address by using a paging function managed by the host CPU 12 .
  • a logical address system memory map therefore, data are apparently arranged in a continuous address area.
  • positions in the system memory 13 in which data are actually recorded are arbitrary, and fragmented as indicated by a physical address system memory map.
  • These data are managed by the addresses and data lengths. The data length is variable.
  • the relationship between the physical address and logical address of data stored in the system memory 13 is managed by a page table (not shown).
  • data stored in the SD memory card 13 are managed for each page (each block) having, e.g., 512 bytes to a few Mbytes, and completely independent of the system memory 13 .
  • data in the system memory 13 is to be stored in the SD memory card 15 , therefore, as indicated by an SD physical address memory map, the data in the system memory 13 is stored by a size different from that in the system memory 13 .
  • Data in the SD memory card 15 is held in continuous memory area designated for each command and has an address designated by the command. The data length is variable and is designated by the other command.
  • DMA transfer directly accesses the system memory 13 by the physical address. Accordingly, DMA can be executed by forming a descriptor as a transfer list in the system memory 13 .
  • FIG. 3 shows a descriptor according to this embodiment. This descriptor is formed in the descriptor table 22 of the system memory 13 .
  • the descriptor of this embodiment extends a conventional descriptor and has a hierarchical structure.
  • data transfer performed between the system memory 13 and SD memory card 15 by ADMA is completely executable by hardware. This obviates the need to interrupt the host CPU 12 during data transfer. Although an error processing request is notified by an interrupt, no problem arises because the probability of its occurrence is very low.
  • a first descriptor (integrated descriptor) is a set of pointers to a plurality of second descriptors (partial descriptors).
  • Each second descriptor is a pair of a third descriptor (SD command descriptor) and a fourth descriptor (system memory descriptor).
  • the contents of the third descriptor are formed by information for issuing an SD command. That is, the contents of the third descriptor are formed by, e.g., a command number, a command mode, an argument, and a block length and the number of blocks as information necessary for data transfer.
  • the command mode indicates, e.g., read/write.
  • One SD command is issued by writing the third descriptor in the SD command generation unit of the register set 33 of the SD host controller 14 .
  • the contents of the fourth descriptor are formed by an address indicating the position of each data in the system memory 13 , and a length indicating the data length, and indicate a set of a plurality of fragmented data.
  • the third descriptor corresponds to one of read/writ commands
  • one continuous region of the SD memory card can be designated. As shown in FIG. 2 , when the memory region is divided into two or more regions, each of the regions needs the third descriptor. Therefore, the fourth descriptor corresponding to the third descriptor is programmed to the same data length as that of each third descriptor.
  • the first to fourth descriptors each have attribute information Att.
  • Each attribute information Att contains, e.g., information for identifying the type of descriptor, and an end bit indicating the end position of the descriptor.
  • the third descriptor has a format different from that of the other descriptors, so the attribute information Att may be provided in accordance with at least the first command number. Moreover, the attribute information Att may be provided with each line the same as another descriptor.
  • FIG. 4 shows an outline of the arrangement of the ADMA 34 .
  • the ADMA 34 includes a system address controller 34 a, data buffer 34 b, SD command controller 34 c, and buffer memory 34 d.
  • the system address controller 34 a manages addresses in the system memory 13 . More specifically, the system address controller 34 a manages the load of the first to fourth descriptors stored in the system memory 13 . That is, the start address of the first descriptor (integrated descriptor) is set in the system address controller 34 a as initial value. Thereby, the system address controller 34 a is able to read information of the first descriptor from the memory 13 . Since pointers of each of the second descriptors are described in the first descriptor, the system address controller 34 a reads an address of the second descriptor designated by each of the pointers and reads the second descriptor in accordance with the address.
  • the system address controller 34 a transfers an SD command descriptor as the third descriptor forming the second descriptor to the SD command controller 34 c.
  • the system address controller 34 a sequentially loads the address and data length of data described in the fourth descriptor forming the second descriptor.
  • the system address controller 34 a reads data from the system memory 13 and transfers the data to the data buffer 34 b when performing memory write.
  • the system address controller 13 a transfers data from the data buffer 34 b to the system memory 13 .
  • the system address controller 34 a includes a plurality of registers 34 a_ 1 to 34 a_ 4 , and a multiplexer (MPX) 34 a_ 5 for selecting output signals from these registers, in order to hold the start address of the first descriptor (integrated descriptor), the pointer of the second descriptor (partial descriptor), and the address and data length of data.
  • MPX multiplexer
  • the SD command controller 34 c sequentially generates register addresses for setting values in the SD command generation unit, and sequentially sets, in the SD command generation unit of the register set 33 of the host controller 14 , register setting information contained in an SD command descriptor as the third descriptor. When the setting of the registers is complete, the SD command generation unit of the register set 33 issues an SD command.
  • the buffer memory 34 d loads data in the system memory 13 , which is designated by the system address controller 34 a, and temporarily holds the supplied data.
  • the data held in the data buffer 34 b is transferred to the SD memory card 15 in synchronism with an issued SD command.
  • the buffer memory 34 d temporarily holds data loaded from the SD memory card 15 as a memory device in synchronism with an issued SD command, and transfers the data to a position in the system memory 13 , which is designated by the system address controller 34 a.
  • the host driver 21 To perform data transfer between the system memory 13 and SD memory card 15 , the host driver 21 forms the extended descriptor as shown in FIG. 3 in the system memory 13 . The host driver 21 sets the start address of the first descriptor in register 34 a_ 1 of the system address controller 34 a.
  • the system address controller 34 a loads a second descriptor pointer (partial descriptor pointer) described at the head of the first descriptor (integrated descriptor), based on the start address of the first descriptor held in register 34 a_ 1 , and holds the second descriptor pointer in register 34 a_ 2 (ST 11 ).
  • system address controller 34 a loads a second descriptor in the location indicated by the second descriptor pointer (ST 12 ).
  • the third descriptor (SD command descriptor) described at the head of the second descriptor is supplied to the SD command controller 34 c.
  • the SD command controller 34 c writes data described in the third descriptor, in the SD command generation unit forming the register set 33 of the SD host controller 14 . Consequently, the SD command generation unit issues a command to the SD memory card 15 (ST 13 ).
  • the system address controller 34 a loads the fourth descriptor (system memory descriptor).
  • the system address controller 34 a holds the address and data length described in the fourth descriptor, in register 34 a_ 3 (address) and register 34 a_ 4 (length), respectively.
  • the system address controller 34 a reads data from the system memory 13 by using the address in register 34 a_ 3 (address) as the start address, and transfers the read data to the data buffer 34 b.
  • the system address controller 34 a writes data of the data buffer 34 b in the system memory 13 by using the address in register 34 a_ 3 (address) as the start address (ST 14 ).
  • the fourth descriptor (system memory descriptor) is made up of a plurality of data each formed by a pair of the address and data length, and the ADMA performs data transfer between the system memory and data buffer 34 b by repeating this.
  • the ADMA transfers the data held in the data buffer 34 b to the SD memory card 15 (ST 15 ).
  • the ADMA accesses data in the system memory 13 in synchronism with an issued command (read/write command), and data transfer between the memory and card is executed via the data buffer 34 b by synchronizing them.
  • the total data transfer amounts on the memory device side and system memory side must be set at the same value.
  • the SD host controller 14 determines whether the contents described in the first descriptor have been executed. If all the contents described in the first descriptor have been executed, the SD host controller 14 generates an ADMA completion interrupt (ST 17 ). This allows the CPU 12 (host driver 21 ) to know the normal termination of the ADMA processing. If no error occurs, the host CPU 12 need not participate in transfer from the activation to the termination of the ADMA, so the host driver does not deteriorate the performance. In addition, the descriptor formation time has no influence on the transfer performance because the next descriptor can be prepared during data transfer.
  • a file system is instructed by the host driver to update information, when the transmission is completed. Thereby, the data transferred to the SD memory card is decided.
  • the host driver 21 generates the extended descriptor in the system memory 13 in order to perform data transfer between the system memory 13 and SD memory card 15 .
  • This extended descriptor includes the first descriptor as a set of pointers indicating the positions of the second descriptors.
  • the ADMA 34 sequentially loads the contents of the second descriptors based on the contents of the start address of the first descriptor, and executes data transfer between the system memory 13 and SD memory card 15 in accordance with the contents of the third and fourth descriptors described in the second descriptors. Therefore, the host driver 21 does not participate in data transfer executed by the ADMA 34 . This enables the ADMA 34 to perform high-speed data transfer.
  • the ADMA 34 After being activated, the ADMA 34 generates a command by setting the third descriptor in the SD command generation unit of the register set 33 , and can execute data transfer between the system memory 13 and SD memory card 15 by using hardware alone. This makes the operation speed much higher than that when the host driver 21 intervenes in the operation.
  • the host driver is normally activated by an interrupt. Accordingly, the data transfer performance deteriorates if the interrupt response time is not negligible.
  • the method of this embodiment can avoid the performance deterioration like this.

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)
  • Bus Control (AREA)

Abstract

According to one embodiment, the host controller includes a register set to issue command, and a direct memory access (DMA) unit and accesses a system memory and a device. First, second, third and fourth descriptors are stored in the system memory. The first descriptor includes a set of a plurality of pointers indicating a plurality of second descriptors. Each of the second descriptors comprises the third descriptor and fourth descriptor. The third descriptor includes a command number, etc. The fourth descriptor includes information indicating addresses and sizes of a plurality of data arranged in the system memory. The DMA unit sets, in the register set, the contents of the third descriptor forming the second descriptor, from the head of the first descriptor as a start point, and transfers data between the system memory and the host controller in accordance with the contents of the fourth descriptor.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of and claims the benefit of priority under 35 U.S.C. §120 from U.S. Ser. No. 14/338,038 filed Jul. 22, 2014, which is a continuation of U.S. Ser. No. 14/172,995 filed Feb. 5, 2014 (now U.S. Pat. No. 8,825,923 issued Sep. 2, 2014), which is a continuation of Ser. No. 13/865,754 filed Apr. 18, 2013 (now U.S. Pat. No. 8,683,093 issued Mar. 25, 2014), which is a continuation of U.S. Ser. No. 13/473,212 filed May 16, 2012 (now U.S. Pat. No. 8,447,896 issued May 21, 2013), which is a continuation of U.S. Ser. No. 13/052,147 filed Mar. 21, 2011 (now U.S. Pat. No. 8,195,845 issued Jun. 5, 2012), and claims the benefit of priority under 35 U.S.C. §119 from Japanese Patent Application No. 2010-212721 filed Sep. 22, 2010, the entire contents of each of which are incorporated herein by reference.
FIELD
Embodiments described herein relate generally to a host controller and memory system to be applied to, e.g., a SD™ card, and supporting advanced direct memory access (ADMA).
BACKGROUND
Recently, SD cards such as SD memory cards are widely used in, e.g., cell phones and digital still cameras as host devices. This SD card is connected to a host device via a host controller, and the host controller controls data transmission between the host device and SD memory card.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic view showing the arrangement of a memory system according to an embodiment;
FIG. 2 is a schematic view showing the memory maps of a system memory and memory card;
FIG. 3 is a view showing the structure of a descriptor according to the embodiment;
FIG. 4 is a schematic view showing the arrangement of ADMA shown in FIG. 1; and
FIG. 5 is a flowchart showing the operation of ADMA.
DETAILED DESCRIPTION
A system memory installed in a host device is managed by paging. Therefore, data in the system memory is fragmentarily managed page-by-page.
To efficiently perform data read/write to a memory card, a host controller supports DMA algorithm capable of data transfer managed page-by-page. That is, data fragmented in the system memory can be transferred by DMA by using a descriptor as a data transfer list.
Unfortunately, conventional DMA algorithm generates an interrupt in order to generate a new system address in the boundary between pages. This disturbs the operation of a CPU. ADMA has been developed in order to eliminate this problem.
ADMA has a function of transferring data to fragmented data areas in the system memory by paging, in accordance with one read/write command of an SD card. Accordingly, ADMA controls data transfer between the host controller and system memory without any interrupt to the CPU by loading the descriptor in the system memory. A host driver controls the issue of a command to the memory card by setting a register set in the host controller, thereby controlling data transfer between the host controller and memory card, and interruption to the CPU has been used. This method poses no problem when the bus performance is low as in a conventional memory.
As the bus performance improves and high-speed data transfer becomes possible in recent years, however, the processing of the host driver generates an overhead. Since it is not always possible to continuously use the area of the memory card, a memory command must be divided into a plurality of memory commands. To control command issue to the memory card by the host driver, the host driver must be executed by causing the host CPU to generate an interrupt midway along data transfer. Therefore, it takes a certain time to respond to the interrupt. This deteriorates the performance because of the influence of the waiting time of the driver processing even when using a high-speed bus.
Accordingly, demands have arisen for a method of efficiently performing data transfer by making it possible to execute, by DMA, the processing requiring the host driver during data transfer.
Embodiment
In general, according to one embodiment, a memory system includes a host controller and DMA unit. The host controller includes a register set configured to control command issue to a device, and a direct memory access (DMA) unit configured to access a system memory, and controls transfer between the system memory and the device. First, second, third and fourth descriptors are stored in the system memory. The first descriptor includes a set of a plurality of pointers indicating a plurality of second descriptors. Each of the second descriptors comprises the third descriptor and fourth descriptor. The third descriptor includes a command number, a command operation mode, and an argument as information necessary to issue a command to the device, and a block length and the number of blocks as information necessary for data transfer. The fourth descriptor includes information indicating addresses and sizes of a plurality of data arranged in the system memory. The ADMA unit sets, in the register set, the contents of the third descriptor forming the second descriptor, from the head of the first descriptor as a start point, and loads and transfers data from the system memory in accordance with the contents of the fourth descriptor.
The embodiment will be explained below with reference to the accompanying drawing. The ADMA described below is an ADMA improved by the embodiment.
FIG. 1 schematically shows the memory system according to this embodiment.
This embodiment makes it possible to issue SD commands by a host controller during DMA transfer by extending a descriptor capable of data transfer of a system memory, thereby reducing the overhead caused by host driver processing.
A system controller 11 shown in FIG. 1 controls interfaces with a CPU 12, system memory 13, and SD controller 14.
The system memory 13 stores a host driver 21, descriptor table 22, and data 23. An operating system (OS) secures areas required to store the host driver 21, descriptor table 22, and data 23 in the system memory 13.
The host driver 21 is a driver provided for, e.g., the SD host controller 14 and unique to the OS, and is executed by the CPU 12. The host driver 21 generates the descriptor table 22 before executing ADMA (to be described later). The descriptor table 22 is a list of information necessary for data transfer between the system memory 13 and an SD card, and is described by format which can be interpreted by the SD host controller. The structure of the descriptor table 22 will be described later.
The SD host controller 14 has a function of bidirectionally transferring data between the system memory 13 and an SD card by using SD commands. The SD host controller 14 mainly includes a system bus interface circuit 31, a memory card interface circuit 32, a register set 33 including a plurality of registers, an ADMA 34, and a timer 35.
The system bus interface circuit 31 is connected to the system controller 11 via a system bus. The memory card is interface circuit 32 is connectable to SD cards, e.g., an SD memory card 15 and SDIO card 16, via an SD bus interface (not shown). The SD bus interface is not limited to 4-bits type, but can be applied to e.g. UHS (Ultra High Speed)-II using LVDS (Low Voltage Differential Signaling) system. In UHS-II, commands are transferred in packet form.
The register set 33 of the SD host controller 14 is classified into a plurality of units (not shown) such as an SD command generation unit, response unit, buffer data port unit, host control unit, interrupt control unit, and ADMA unit. Information such as a command number, command mode, and argument necessary to issue an SD command and information such as a block length and the number of blocks necessary to transfer data are set in the SD command generation unit of the register set 33. When these pieces of information are set, the SD command generation unit issues a command to an SD card. The response unit in the register set 33 receives a response supplied from the SD card in response to the command.
The ADMA 34 is a circuit for transferring data between an SD card and the system memory 13 without any intervention of the CPU 12. The ADMA 34 executes data transfer in accordance with contents described in the descriptor table 22 in the system memory 13.
The timer 35 detects a timeout error. For example, the timer 35 detects a timeout error if the operation of a read command is not complete within a time set from the issue to the end of the read command. The CPU 12 is notified of this timeout error by an interrupt, and the timeout error is processed by the host driver.
FIG. 2 shows an example of the relationship between paging management of the system memory 13 and SD physical addresses. The system memory 13 is managed by paging for each small area, e.g., a 4-Kbyte area. An application executed by the host CPU 12 accesses the system memory 13 by a logical address by using a paging function managed by the host CPU 12. As indicated by a logical address system memory map, therefore, data are apparently arranged in a continuous address area. However, positions in the system memory 13 in which data are actually recorded are arbitrary, and fragmented as indicated by a physical address system memory map. These data are managed by the addresses and data lengths. The data length is variable. Also, the relationship between the physical address and logical address of data stored in the system memory 13 is managed by a page table (not shown).
On the other hand, data stored in the SD memory card 13 are managed for each page (each block) having, e.g., 512 bytes to a few Mbytes, and completely independent of the system memory 13. When data in the system memory 13 is to be stored in the SD memory card 15, therefore, as indicated by an SD physical address memory map, the data in the system memory 13 is stored by a size different from that in the system memory 13. Data in the SD memory card 15 is held in continuous memory area designated for each command and has an address designated by the command. The data length is variable and is designated by the other command.
DMA transfer directly accesses the system memory 13 by the physical address. Accordingly, DMA can be executed by forming a descriptor as a transfer list in the system memory 13.
FIG. 3 shows a descriptor according to this embodiment. This descriptor is formed in the descriptor table 22 of the system memory 13.
The descriptor of this embodiment extends a conventional descriptor and has a hierarchical structure. When using the descriptor of this embodiment, data transfer performed between the system memory 13 and SD memory card 15 by ADMA is completely executable by hardware. This obviates the need to interrupt the host CPU 12 during data transfer. Although an error processing request is notified by an interrupt, no problem arises because the probability of its occurrence is very low.
As shown in FIG. 3, a first descriptor (integrated descriptor) is a set of pointers to a plurality of second descriptors (partial descriptors).
Each second descriptor (partial descriptor) is a pair of a third descriptor (SD command descriptor) and a fourth descriptor (system memory descriptor).
The contents of the third descriptor are formed by information for issuing an SD command. That is, the contents of the third descriptor are formed by, e.g., a command number, a command mode, an argument, and a block length and the number of blocks as information necessary for data transfer. The command mode indicates, e.g., read/write. One SD command is issued by writing the third descriptor in the SD command generation unit of the register set 33 of the SD host controller 14.
The contents of the fourth descriptor (system memory descriptor) are formed by an address indicating the position of each data in the system memory 13, and a length indicating the data length, and indicate a set of a plurality of fragmented data.
Since the third descriptor corresponds to one of read/writ commands, one continuous region of the SD memory card can be designated. As shown in FIG. 2, when the memory region is divided into two or more regions, each of the regions needs the third descriptor. Therefore, the fourth descriptor corresponding to the third descriptor is programmed to the same data length as that of each third descriptor.
The first to fourth descriptors each have attribute information Att. Each attribute information Att contains, e.g., information for identifying the type of descriptor, and an end bit indicating the end position of the descriptor.
Note that the third descriptor has a format different from that of the other descriptors, so the attribute information Att may be provided in accordance with at least the first command number. Moreover, the attribute information Att may be provided with each line the same as another descriptor.
FIG. 4 shows an outline of the arrangement of the ADMA 34. The ADMA 34 includes a system address controller 34a, data buffer 34b, SD command controller 34c, and buffer memory 34d.
The system address controller 34a manages addresses in the system memory 13. More specifically, the system address controller 34a manages the load of the first to fourth descriptors stored in the system memory 13. That is, the start address of the first descriptor (integrated descriptor) is set in the system address controller 34a as initial value. Thereby, the system address controller 34a is able to read information of the first descriptor from the memory 13. Since pointers of each of the second descriptors are described in the first descriptor, the system address controller 34a reads an address of the second descriptor designated by each of the pointers and reads the second descriptor in accordance with the address. Then, the system address controller 34a transfers an SD command descriptor as the third descriptor forming the second descriptor to the SD command controller 34c. In addition, the system address controller 34a sequentially loads the address and data length of data described in the fourth descriptor forming the second descriptor. In accordance with the loaded address and data length, the system address controller 34a reads data from the system memory 13 and transfers the data to the data buffer 34b when performing memory write. When performing memory read, the system address controller 13a transfers data from the data buffer 34b to the system memory 13.
To execute these operations, the system address controller 34a includes a plurality of registers 34a_1 to 34a_4, and a multiplexer (MPX) 34a_5 for selecting output signals from these registers, in order to hold the start address of the first descriptor (integrated descriptor), the pointer of the second descriptor (partial descriptor), and the address and data length of data.
The SD command controller 34c sequentially generates register addresses for setting values in the SD command generation unit, and sequentially sets, in the SD command generation unit of the register set 33 of the host controller 14, register setting information contained in an SD command descriptor as the third descriptor. When the setting of the registers is complete, the SD command generation unit of the register set 33 issues an SD command.
In memory write, the buffer memory 34d loads data in the system memory 13, which is designated by the system address controller 34a, and temporarily holds the supplied data. The data held in the data buffer 34b is transferred to the SD memory card 15 in synchronism with an issued SD command.
In memory read, the buffer memory 34d temporarily holds data loaded from the SD memory card 15 as a memory device in synchronism with an issued SD command, and transfers the data to a position in the system memory 13, which is designated by the system address controller 34a.
The operation of the ADMA 34 using the extended descriptor in the above-mentioned configuration will be explained below with reference to FIG. 5.
To perform data transfer between the system memory 13 and SD memory card 15, the host driver 21 forms the extended descriptor as shown in FIG. 3 in the system memory 13. The host driver 21 sets the start address of the first descriptor in register 34a_1 of the system address controller 34a.
When the host driver 21 activates the ADMA 34 after that, the system address controller 34a loads a second descriptor pointer (partial descriptor pointer) described at the head of the first descriptor (integrated descriptor), based on the start address of the first descriptor held in register 34a_1, and holds the second descriptor pointer in register 34a_2 (ST11).
Then, the system address controller 34a loads a second descriptor in the location indicated by the second descriptor pointer (ST12).
The third descriptor (SD command descriptor) described at the head of the second descriptor is supplied to the SD command controller 34c. The SD command controller 34c writes data described in the third descriptor, in the SD command generation unit forming the register set 33 of the SD host controller 14. Consequently, the SD command generation unit issues a command to the SD memory card 15 (ST13).
Subsequently, the system address controller 34a loads the fourth descriptor (system memory descriptor). The system address controller 34a holds the address and data length described in the fourth descriptor, in register 34a_3 (address) and register 34a_4 (length), respectively. In memory write, the system address controller 34a reads data from the system memory 13 by using the address in register 34a_3 (address) as the start address, and transfers the read data to the data buffer 34b. In memory read, the system address controller 34a writes data of the data buffer 34b in the system memory 13 by using the address in register 34a_3 (address) as the start address (ST14).
In memory write, fragmented data supplied from the system memory 13 are combined into continuous data in the data buffer 34b. The fourth descriptor (system memory descriptor) is made up of a plurality of data each formed by a pair of the address and data length, and the ADMA performs data transfer between the system memory and data buffer 34b by repeating this.
After that, the ADMA transfers the data held in the data buffer 34b to the SD memory card 15 (ST15). The ADMA accesses data in the system memory 13 in synchronism with an issued command (read/write command), and data transfer between the memory and card is executed via the data buffer 34b by synchronizing them. The total data transfer amounts on the memory device side and system memory side must be set at the same value.
When data transfer based on one second descriptor is complete, whether the execution of the whole first descriptor is complete is determined (ST16). If the execution of the whole first descriptor is not complete, the control returns to step ST12, the next second descriptor is loaded in accordance with the partial descriptor pointer described in the first descriptor, and the above operation is executed (ST16-ST12). Each descriptor has the end bit in the above-mentioned attribute information Att, and the end position of the descriptor program can be designated by this end bit.
When the third descriptor is set in the register of the SD host controller 14 in accordance with the next second descriptor, an SD command is issued, and data is transferred in accordance with the fourth descriptor. In memory read, for example, after final data is transferred to the data buffer 34b, it is also possible to issue the SD command of the next transmission during DMA transfer to the system memory by reading the following third descriptor. In this case, the operation speed can further be increased because the command issuing time is hidden.
On the other hand, if all the contents described in the first descriptor have been executed, the SD host controller 14 generates an ADMA completion interrupt (ST17). This allows the CPU 12 (host driver 21) to know the normal termination of the ADMA processing. If no error occurs, the host CPU 12 need not participate in transfer from the activation to the termination of the ADMA, so the host driver does not deteriorate the performance. In addition, the descriptor formation time has no influence on the transfer performance because the next descriptor can be prepared during data transfer.
A file system is instructed by the host driver to update information, when the transmission is completed. Thereby, the data transferred to the SD memory card is decided.
In the above embodiment, the host driver 21 generates the extended descriptor in the system memory 13 in order to perform data transfer between the system memory 13 and SD memory card 15. This extended descriptor includes the first descriptor as a set of pointers indicating the positions of the second descriptors. When the host driver 21 activates the ADMA 34, the ADMA 34 sequentially loads the contents of the second descriptors based on the contents of the start address of the first descriptor, and executes data transfer between the system memory 13 and SD memory card 15 in accordance with the contents of the third and fourth descriptors described in the second descriptors. Therefore, the host driver 21 does not participate in data transfer executed by the ADMA 34. This enables the ADMA 34 to perform high-speed data transfer.
Also, after being activated, the ADMA 34 generates a command by setting the third descriptor in the SD command generation unit of the register set 33, and can execute data transfer between the system memory 13 and SD memory card 15 by using hardware alone. This makes the operation speed much higher than that when the host driver 21 intervenes in the operation.
Furthermore, to operate the host driver during data transfer, the host driver is normally activated by an interrupt. Accordingly, the data transfer performance deteriorates if the interrupt response time is not negligible. However, the method of this embodiment can avoid the performance deterioration like this.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.

Claims (8)

What is claimed is:
1. A host controller which is connected to a memory device through an interface, accesses a system memory, and is controlled by a CPU executing a host driver, wherein each of first, second, third, and fourth descriptors has an attribute field for identifying a type of the descriptors, and designating a processing method of the descriptors, the host controller comprising:
a register set which is configured to store a part of information in the third descriptor;
a command controller which is configured to issue a command to the memory device according to the information stored in the register set; and
a direct memory access (DMA) unit which is configured to load the first, third, and fourth descriptors into the host controller, and is configured to transfer data between the system memory and the memory device according to the first, second, third, and fourth descriptors,
wherein the first descriptor includes a plurality of pointers to the second descriptors with attributes,
the second descriptor includes the third descriptor and the fourth descriptor,
each of the pointers of the first descriptor indicates a leading region of the third descriptor,
the third descriptor includes command issue information and attributes,
the fourth descriptor includes a number of DMA execution information and attributes, and
the first descriptor, the second descriptor, the third descriptor, and the fourth descriptor have a hierarchical structure,
wherein the DMA unit is configured (1) to load the first descriptor, (2) to acquire the pointer from the loaded first descriptor, (3) to load the second descriptor including the third descriptor and the fourth descriptor based on the acquired pointer, (4) to execute a data transfer between the system memory and the memory device, (5) to repeat the process of (2) to (4) until the attribute of the first descriptor indicates the end of descriptor, and (6) to generate an interrupt to the CPU when the data transfer is end ended or during a DMA data transfer,
wherein the third descriptors descriptor includes information to generate a data transfer command of the memory device, a command argument, a command number, a block length, and the number of blocks,
wherein the fourth descriptor includes information to designate system memory areas addresses, and sizes for each of a plurality of scattered data in the system memory, and
wherein the DMA unit includes:
a system address controller configured to control addresses of the system memory pointing data and each descriptor, and
a data buffer,
wherein the data in the system memory is read to the data buffer in accordance with the fourth descriptor, and the data in the data buffer is transferred to the memory device in accordance with the third descriptor when the data is written into the memory device, and
the data in the memory device is read to the data buffer in accordance with the third descriptor, and the data in the data buffer is transferred to the system memory in accordance with the fourth descriptor when the data is read from the memory device.
2. The host controller according to claim 1, wherein the fourth descriptor is programmed so that a sum of sizes of a plurality of scattered data equals to the block length indicated in the third descriptor.
3. The host controller according to claim 1, wherein the data transfer between the host controller and the memory device is started by a memory read/write command which is issued by command controller when setting information of the third descriptor to the register set is completed, and
the memory device acquires information necessary for the data transfer from the command.
4. A method for transferring data between a memory device and a system memory executed by a host controller, the system memory storing first, second, third, and fourth descriptors, the method comprising:
(1) loading the first descriptor including a plurality of pointers with attributes;
(2) acquiring a pointer to the second descriptor from the loaded first descriptor, wherein the pointer indicates a leading region of the third descriptor, wherein the second descriptor includes the third descriptor and the fourth descriptor;
(3) loading the third descriptor included in the second descriptor based on the pointer to issue a command, wherein the third descriptor includes command issue information and attributes;
(4) issuing a command according to the loaded third descriptor;
(5) loading the fourth descriptor included in the second descriptor based on the pointer, wherein the fourth descriptor includes a number of DMA execution information and attributes, wherein the first descriptor, the second descriptor, the third descriptor, and the fourth descriptor have a hierarchical structure;
(6) when the issued command is a read-command, reading data from the system memory to a data buffer in accordance with the fourth descriptor and transferring the data from the data buffer to the memory device in accordance with the third descriptor;
when the issued command is a write-command, reading data from the memory device to the data buffer in accordance with the third descriptor, and transferring the data from the data buffer to the system memory in accordance with the fourth descriptor;
(7) repeating (2) to (6) until an attribute of the first descriptor indicates the end of descriptor; and
(8) generating an interrupt when a data transfer is end ended or during a DMA data transfer,
wherein the third descriptor includes information to generate a data transfer command of the memory device, a command argument, a command number, a block length, and the number of blocks,
wherein the fourth descriptor includes information to designate system memory areas addresses, and sizes for each of a plurality of scattered data in the system memory.
5. The method according to claim 4, wherein the first, third, and fourth descriptors includes:
information for indicating the type of descriptor; and
an end bit indicating the last descriptor for each of the first, third, and fourth descriptors.
6. A method for transferring data between a memory device and a system memory executed by a host controller, the system memory storing first, second, third, and fourth descriptors, the method comprising:
(1) loading the first descriptor including a plurality of pointers with attributes;
(2) acquiring a pointer to the second descriptor from the loaded first descriptor, wherein the second descriptor includes the third descriptor and the fourth descriptor, and wherein the pointer indicates a leading region of the third descriptor;
(3) loading the second descriptor including the third descriptor and the fourth descriptor based on the acquired pointer, wherein the third descriptor includes command issue information and attributes, and the fourth descriptor includes a number of DMA execution information and attributes, wherein the first descriptor, third descriptor, and the fourth descriptor have a hierarchical structure;
(4) executing a data transfer between the system memory and the memory device in accordance with the loaded third descriptor and the loaded fourth descriptor,
(5) repeating (2) to (4) until the attribute of the first descriptor indicates the end of descriptor, and
(6) generating an interrupt when the data transfer is ended or during a DMA data transfer,
wherein the third descriptor includes information to generate a data transfer command of the memory device, a command argument, a command number, a block length, and the number of blocks; and
wherein the fourth descriptor includes information to designate system memory areas addresses, and sizes for each of a plurality of scattered data in the system memory.
7. The method according to claim 6, wherein (4) includes:
when the data is transferred to the memory device,
storing data from the system memory in a data buffer; and
restoring the data to write the data to the memory device, and
when the data is transferred to the system memory,
storing data from the memory device in the data buffer; and
restoring the data to write the data to the system memory.
8. The method according to claim 6, further comprising:
issuing a memory read/write command to start the data transfer between the host controller and the memory device,
wherein the memory device acquires information necessary for the data transfer from the command.
US15/462,431 2010-09-22 2017-03-17 Memory system having high data transfer efficiency and host controller Active USRE47659E1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/462,431 USRE47659E1 (en) 2010-09-22 2017-03-17 Memory system having high data transfer efficiency and host controller
US16/559,092 USRE48736E1 (en) 2010-09-22 2019-09-03 Memory system having high data transfer efficiency and host controller
US17/396,421 USRE49875E1 (en) 2010-09-22 2021-08-06 Memory system having high data transfer efficiency and host controller

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP2010212721 2010-09-22
JP2010-212721 2010-09-22
US13/052,147 US8195845B2 (en) 2010-09-22 2011-03-21 Memory system having high data transfer efficiency and host controller
US13/473,212 US8447896B2 (en) 2010-09-22 2012-05-16 Memory system having high data transfer efficiency and host controller
US13/865,754 US8683093B2 (en) 2010-09-22 2013-04-18 Memory system having high data transfer efficiency and host controller
US14/172,995 US8825923B2 (en) 2010-09-22 2014-02-05 Memory system having high data transfer efficiency and host controller
US14/338,038 US8959260B2 (en) 2010-09-22 2014-07-22 Memory system having high data transfer efficiency and host controller
US14/588,718 US9122630B2 (en) 2010-09-22 2015-01-02 Memory system having high data transfer efficiency and host controller
US15/462,431 USRE47659E1 (en) 2010-09-22 2017-03-17 Memory system having high data transfer efficiency and host controller

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/588,718 Reissue US9122630B2 (en) 2010-09-22 2015-01-02 Memory system having high data transfer efficiency and host controller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/588,718 Continuation US9122630B2 (en) 2010-09-22 2015-01-02 Memory system having high data transfer efficiency and host controller

Publications (1)

Publication Number Publication Date
USRE47659E1 true USRE47659E1 (en) 2019-10-22

Family

ID=45818746

Family Applications (9)

Application Number Title Priority Date Filing Date
US13/052,147 Active US8195845B2 (en) 2010-09-22 2011-03-21 Memory system having high data transfer efficiency and host controller
US13/473,212 Active US8447896B2 (en) 2010-09-22 2012-05-16 Memory system having high data transfer efficiency and host controller
US13/865,754 Active US8683093B2 (en) 2010-09-22 2013-04-18 Memory system having high data transfer efficiency and host controller
US14/172,995 Active US8825923B2 (en) 2010-09-22 2014-02-05 Memory system having high data transfer efficiency and host controller
US14/338,038 Active US8959260B2 (en) 2010-09-22 2014-07-22 Memory system having high data transfer efficiency and host controller
US14/588,718 Ceased US9122630B2 (en) 2010-09-22 2015-01-02 Memory system having high data transfer efficiency and host controller
US15/462,431 Active USRE47659E1 (en) 2010-09-22 2017-03-17 Memory system having high data transfer efficiency and host controller
US16/559,092 Active USRE48736E1 (en) 2010-09-22 2019-09-03 Memory system having high data transfer efficiency and host controller
US17/396,421 Active USRE49875E1 (en) 2010-09-22 2021-08-06 Memory system having high data transfer efficiency and host controller

Family Applications Before (6)

Application Number Title Priority Date Filing Date
US13/052,147 Active US8195845B2 (en) 2010-09-22 2011-03-21 Memory system having high data transfer efficiency and host controller
US13/473,212 Active US8447896B2 (en) 2010-09-22 2012-05-16 Memory system having high data transfer efficiency and host controller
US13/865,754 Active US8683093B2 (en) 2010-09-22 2013-04-18 Memory system having high data transfer efficiency and host controller
US14/172,995 Active US8825923B2 (en) 2010-09-22 2014-02-05 Memory system having high data transfer efficiency and host controller
US14/338,038 Active US8959260B2 (en) 2010-09-22 2014-07-22 Memory system having high data transfer efficiency and host controller
US14/588,718 Ceased US9122630B2 (en) 2010-09-22 2015-01-02 Memory system having high data transfer efficiency and host controller

Family Applications After (2)

Application Number Title Priority Date Filing Date
US16/559,092 Active USRE48736E1 (en) 2010-09-22 2019-09-03 Memory system having high data transfer efficiency and host controller
US17/396,421 Active USRE49875E1 (en) 2010-09-22 2021-08-06 Memory system having high data transfer efficiency and host controller

Country Status (4)

Country Link
US (9) US8195845B2 (en)
JP (2) JP2012089105A (en)
CN (2) CN104360967B (en)
TW (1) TWI465905B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49875E1 (en) * 2010-09-22 2024-03-19 Kioxia Corporation Memory system having high data transfer efficiency and host controller

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026568B2 (en) 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
JP2014010759A (en) * 2012-07-02 2014-01-20 Toshiba Corp Bridge device, method therefor, storage apparatus and program
US9558129B2 (en) 2014-06-10 2017-01-31 Xilinx, Inc. Circuits for and methods of enabling the access to data
TWI553476B (en) * 2015-03-05 2016-10-11 光寶電子(廣州)有限公司 Region descriptor management method and electronic apparatus thereof
CN105988954B (en) * 2015-03-05 2018-09-11 光宝科技股份有限公司 Area description element management method and its electronic device
CN104850517B (en) * 2015-05-20 2018-01-12 新华三技术有限公司 A kind of method and device of DMA transfer message data
US20170147517A1 (en) * 2015-11-23 2017-05-25 Mediatek Inc. Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method
EP3173935B1 (en) * 2015-11-24 2018-06-06 Stichting IMEC Nederland Memory access unit
CN106547709B (en) * 2016-11-24 2019-05-21 盛科网络(苏州)有限公司 The method and device of flexible configuration multi-channel DMA controller
JP6882080B2 (en) * 2017-05-31 2021-06-02 キヤノン株式会社 Image processing equipment, methods, programs and systems
CN108388529B (en) * 2018-01-26 2021-03-09 武汉中元华电电力设备有限公司 Method for actively realizing data exchange between peripheral and CPU
US10657087B2 (en) * 2018-05-31 2020-05-19 Toshiba Memory Corporation Method of out of order processing of scatter gather lists
JP7083717B2 (en) * 2018-07-23 2022-06-13 ルネサスエレクトロニクス株式会社 Semiconductor equipment
CN113805813B (en) * 2018-11-30 2024-07-16 北京忆芯科技有限公司 Method and apparatus for reducing read command processing delay
CN109558344B (en) * 2018-12-03 2021-10-29 郑州云海信息技术有限公司 DMA transmission method and DMA controller suitable for network transmission
US10664282B1 (en) * 2019-02-04 2020-05-26 Amazon Technologies, Inc. Runtime augmentation of engine instructions
JP2020154493A (en) * 2019-03-19 2020-09-24 キオクシア株式会社 Memory system
KR20210053384A (en) 2019-11-01 2021-05-12 삼성전자주식회사 Storage device and operating method of storage device
TWI771852B (en) * 2020-12-29 2022-07-21 新唐科技股份有限公司 Direct memory access device, data transmission method and electronic device
US11941131B1 (en) * 2020-12-31 2024-03-26 Meta Platforms Technologies, Llc Isolation of secrets from an operating system
US11940935B2 (en) * 2021-04-19 2024-03-26 Mellanox Technologies, Ltd. Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host
CN114443529B (en) * 2022-04-02 2022-07-05 苏州浪潮智能科技有限公司 Direct memory access architecture, system, method, electronic device and medium

Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
JPH06243083A (en) 1993-02-22 1994-09-02 Hitachi Ltd Io control method and information processor
US5598568A (en) * 1993-05-06 1997-01-28 Mercury Computer Systems, Inc. Multicomputer memory access architecture
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6697885B1 (en) * 1999-05-22 2004-02-24 Anthony E. B. Goodfellow Automated DMA engine for ATA control
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US20040267979A1 (en) 2003-06-30 2004-12-30 Futral William T. Readdressable virtual DMA control and status registers
US20050033874A1 (en) * 2003-08-05 2005-02-10 Futral William T. Direct memory access using memory descriptor list
JP2005092742A (en) 2003-09-19 2005-04-07 Toshiba Corp Video output controller and video card
US20050114561A1 (en) 2003-11-24 2005-05-26 Ho-Keng Lu Method for performing DMA transfers with dynamic descriptor structure
JP2005157717A (en) 2003-11-26 2005-06-16 Nec Micro Systems Ltd Data transfer method and device
JP2005258783A (en) 2004-03-11 2005-09-22 Ricoh Co Ltd Data transfer device, data transfer method, image forming apparatus, and option board
CN1713164A (en) 2005-07-21 2005-12-28 复旦大学 DMA controller and data transmission with multi-transaction discretionary process
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
CN1719427A (en) 2004-07-09 2006-01-11 上海奇码数字信息有限公司 Direct access device of storage and data transmission method thereof
US20060080479A1 (en) * 2004-10-12 2006-04-13 Nec Electronics Corporation Information processing apparatus
CN1811741A (en) 2005-01-27 2006-08-02 富士通株式会社 Direct memory access control method, direct memory access controller, information processing system, and program
US20060288129A1 (en) * 2005-06-17 2006-12-21 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
CN101303677A (en) 2008-05-04 2008-11-12 华为技术有限公司 Method and system for controlling accessing direct memory as well as controller
CN100474278C (en) 2004-12-24 2009-04-01 富士通株式会社 Direct memory access circuit and disk array device using the same
US20090216937A1 (en) 2008-02-27 2009-08-27 Kabushiki Kaisha Toshiba Memory controller, memory system, and access control method of flash memory
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100030938A1 (en) 2008-07-29 2010-02-04 Ralink Technology Corporation Controller and method for direct memory access
US20100125698A1 (en) 2008-11-19 2010-05-20 Akihisa Fujimoto Recordable memory device
US7725638B2 (en) 2006-09-01 2010-05-25 Freescale Semiconductor, Inc. Application processor circuit incorporating both SD host and slave functions and electronic device including same
TWI326824B (en) 2005-02-12 2010-07-01 Broadcom Corp Memory management for a mobile multimedia processor
WO2010074944A2 (en) 2008-12-22 2010-07-01 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US7827331B2 (en) 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
US20110276730A1 (en) 2010-05-04 2011-11-10 Mediatek Inc. Packet based data transfer system and method for host-slave interface
US8073990B1 (en) * 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US8195845B2 (en) * 2010-09-22 2012-06-05 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8209446B2 (en) * 2005-09-29 2012-06-26 Apple Inc. DMA controller that passes destination pointers from transmit logic through a loopback buffer to receive logic to write data to memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933654A (en) * 1996-09-24 1999-08-03 Allen-Bradley Company, Llc Dynamic buffer fracturing by a DMA controller
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
JP2010211322A (en) * 2009-03-06 2010-09-24 Renesas Electronics Corp Network processor, reception controller, and data reception processing method

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4449182B1 (en) * 1981-10-05 1989-12-12
JPH06243083A (en) 1993-02-22 1994-09-02 Hitachi Ltd Io control method and information processor
US5598568A (en) * 1993-05-06 1997-01-28 Mercury Computer Systems, Inc. Multicomputer memory access architecture
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6697885B1 (en) * 1999-05-22 2004-02-24 Anthony E. B. Goodfellow Automated DMA engine for ATA control
US6782465B1 (en) * 1999-10-20 2004-08-24 Infineon Technologies North America Corporation Linked list DMA descriptor architecture
US20040267979A1 (en) 2003-06-30 2004-12-30 Futral William T. Readdressable virtual DMA control and status registers
US20050033874A1 (en) * 2003-08-05 2005-02-10 Futral William T. Direct memory access using memory descriptor list
JP2005092742A (en) 2003-09-19 2005-04-07 Toshiba Corp Video output controller and video card
US20050114561A1 (en) 2003-11-24 2005-05-26 Ho-Keng Lu Method for performing DMA transfers with dynamic descriptor structure
JP2005157717A (en) 2003-11-26 2005-06-16 Nec Micro Systems Ltd Data transfer method and device
JP2005258783A (en) 2004-03-11 2005-09-22 Ricoh Co Ltd Data transfer device, data transfer method, image forming apparatus, and option board
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
CN1719427A (en) 2004-07-09 2006-01-11 上海奇码数字信息有限公司 Direct access device of storage and data transmission method thereof
US20060080479A1 (en) * 2004-10-12 2006-04-13 Nec Electronics Corporation Information processing apparatus
CN100474278C (en) 2004-12-24 2009-04-01 富士通株式会社 Direct memory access circuit and disk array device using the same
CN1811741A (en) 2005-01-27 2006-08-02 富士通株式会社 Direct memory access control method, direct memory access controller, information processing system, and program
TWI326824B (en) 2005-02-12 2010-07-01 Broadcom Corp Memory management for a mobile multimedia processor
US20060288129A1 (en) * 2005-06-17 2006-12-21 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
CN1713164A (en) 2005-07-21 2005-12-28 复旦大学 DMA controller and data transmission with multi-transaction discretionary process
US8209446B2 (en) * 2005-09-29 2012-06-26 Apple Inc. DMA controller that passes destination pointers from transmit logic through a loopback buffer to receive logic to write data to memory
US7725638B2 (en) 2006-09-01 2010-05-25 Freescale Semiconductor, Inc. Application processor circuit incorporating both SD host and slave functions and electronic device including same
US7827331B2 (en) 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
US20090216937A1 (en) 2008-02-27 2009-08-27 Kabushiki Kaisha Toshiba Memory controller, memory system, and access control method of flash memory
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
CN101303677A (en) 2008-05-04 2008-11-12 华为技术有限公司 Method and system for controlling accessing direct memory as well as controller
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100030938A1 (en) 2008-07-29 2010-02-04 Ralink Technology Corporation Controller and method for direct memory access
US8073990B1 (en) * 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US20100125698A1 (en) 2008-11-19 2010-05-20 Akihisa Fujimoto Recordable memory device
WO2010074944A2 (en) 2008-12-22 2010-07-01 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US20110276730A1 (en) 2010-05-04 2011-11-10 Mediatek Inc. Packet based data transfer system and method for host-slave interface
US8195845B2 (en) * 2010-09-22 2012-06-05 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8447896B2 (en) * 2010-09-22 2013-05-21 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8683093B2 (en) * 2010-09-22 2014-03-25 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8825923B2 (en) * 2010-09-22 2014-09-02 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller
US8959260B2 (en) * 2010-09-22 2015-02-17 Kabushiki Kaisha Toshiba Memory system having high data transfer efficiency and host controller

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"SD Host Controller Simplified Specification Version 2.00", Section 1.13, "Advanced DMA", SD Specifications Part A2, SD Association, Feb. 8, 2007, © 2002-2007, 20 Pages.
Chen Jiao-yang, "Design of Multi-channel DMA Controller", Nov. 30, 2009, China Computer and Communication vol. 11, (China), pp. 37-38 with English translation.
Office Action dated Mar. 21, 2014 in Taiwan Patent Application No. 100108381 (with English translation).
Office Action dated Oct. 28, 2014 in Japanese Application No. 2011- 086523 (w/English translation).
Office dated Jun. 17, 2014 in Japanese Patent Application No. 2011-086523 (with English translation).

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49875E1 (en) * 2010-09-22 2024-03-19 Kioxia Corporation Memory system having high data transfer efficiency and host controller

Also Published As

Publication number Publication date
JP2015201234A (en) 2015-11-12
US8683093B2 (en) 2014-03-25
US8959260B2 (en) 2015-02-17
CN102411549B (en) 2014-11-12
CN104360967B (en) 2017-08-04
US20150120984A1 (en) 2015-04-30
US20120072618A1 (en) 2012-03-22
USRE48736E1 (en) 2021-09-14
USRE49875E1 (en) 2024-03-19
US20120226830A1 (en) 2012-09-06
US8195845B2 (en) 2012-06-05
TWI465905B (en) 2014-12-21
US8825923B2 (en) 2014-09-02
TW201214118A (en) 2012-04-01
US8447896B2 (en) 2013-05-21
CN102411549A (en) 2012-04-11
US20140156881A1 (en) 2014-06-05
JP2012089105A (en) 2012-05-10
US20130232283A1 (en) 2013-09-05
US20140337542A1 (en) 2014-11-13
JP6046216B2 (en) 2016-12-14
CN104360967A (en) 2015-02-18
US9122630B2 (en) 2015-09-01

Similar Documents

Publication Publication Date Title
USRE49875E1 (en) Memory system having high data transfer efficiency and host controller
US8683126B2 (en) Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9396141B2 (en) Memory system and information processing device by which data is written and read in response to commands from a host
CN111813703B (en) Data storage device and method for updating logical-to-physical address mapping table
US9575887B2 (en) Memory device, information-processing device and information-processing method
CN114942863A (en) Cascade snapshot processing method, device and equipment and storage medium
US20060143313A1 (en) Method for accessing a storage device
US20060277326A1 (en) Data transfer system and method
US20080016296A1 (en) Data processing system
CN112306927B (en) IO request processing method, device and system
CN111045961B (en) Data processing method and memory controller using the same
JP3747213B1 (en) NAND flash memory device and controller for sequential ROM interface
CN112486410A (en) Method, system, device and storage medium for reading and writing persistent memory file
US20140207980A1 (en) Interface control apparatus, data storage apparatus and method for interface control
CN118363901B (en) PCIe device, electronic component and electronic device
CN110399322B (en) Data transmission method and ping-pong DMA framework
US20240311039A1 (en) Memory system
CN118426670A (en) Data processing method and data processing device
CN118747057A (en) Data writing method and memory controller
CN113127399A (en) Universal serial bus device and access method
US20030149804A1 (en) Interface circuit and semiconductor device

Legal Events

Date Code Title Description
AS Assignment

Owner name: TOSHIBA MEMORY CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KABUSHIKI KAISHA TOSHIBA;REEL/FRAME:043328/0388

Effective date: 20170630

AS Assignment

Owner name: K.K. PANGEA, JAPAN

Free format text: MERGER;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055659/0471

Effective date: 20180801

Owner name: TOSHIBA MEMORY CORPORATION, JAPAN

Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:K.K. PANGEA;REEL/FRAME:055669/0401

Effective date: 20180801

Owner name: KIOXIA CORPORATION, JAPAN

Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055669/0001

Effective date: 20191001

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8