[go: up one dir, main page]

CN116243844B - Method for accessing system memory and processing circuit arranged on network card - Google Patents

Method for accessing system memory and processing circuit arranged on network card

Info

Publication number
CN116243844B
CN116243844B CN202111484555.4A CN202111484555A CN116243844B CN 116243844 B CN116243844 B CN 116243844B CN 202111484555 A CN202111484555 A CN 202111484555A CN 116243844 B CN116243844 B CN 116243844B
Authority
CN
China
Prior art keywords
buffer
data packets
description unit
data
data packet
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
CN202111484555.4A
Other languages
Chinese (zh)
Other versions
CN116243844A (en
Inventor
林嘉宏
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor 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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202111484555.4A priority Critical patent/CN116243844B/en
Publication of CN116243844A publication Critical patent/CN116243844A/en
Application granted granted Critical
Publication of CN116243844B publication Critical patent/CN116243844B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种存取系统存储器的方法,其包含以下步骤:从该系统存储器读取一描述单元,其中该描述单元包含缓冲区起始地址字段以及缓冲区大小字段,其中该缓冲区起始地址字段包含缓冲区在该系统存储器的起始地址,且该缓冲区大小字段包含该缓冲区的大小;接收多个数据包,并将该多个数据包写入至该缓冲区;根据写入至该缓冲区的该多个数据包来修改该描述单元以产生修改后描述单元,其中该修改后描述单元仅包含该多个数据包中一部分数据包的信息或是不包含该多个数据包中任一数据包的信息;以及将该修改后描述单元写入至该系统存储器。

The present invention discloses a method for accessing a system memory, which includes the following steps: reading a description unit from the system memory, wherein the description unit includes a buffer start address field and a buffer size field, wherein the buffer start address field includes the start address of the buffer in the system memory, and the buffer size field includes the size of the buffer; receiving a plurality of data packets, and writing the plurality of data packets into the buffer; modifying the description unit according to the plurality of data packets written into the buffer to generate a modified description unit, wherein the modified description unit only includes information of a portion of the plurality of data packets or does not include information of any of the plurality of data packets; and writing the modified description unit into the system memory.

Description

Method for accessing system memory and processing circuit arranged on network card
Technical Field
The invention relates to a method for accessing a system memory.
Background
When the electronic device receives the network data packet from the outside, the network data packet and the related analysis information are temporarily stored in the system memory for subsequent processing. In storing the parsing information, one of the following two ways is mainly to configure a complete continuous memory space in the system memory, and use the parsing information of each data packet as the header of the data packet to store in the memory space. However, since each packet must be stored in the memory space continuously, and the number of packet processes increases due to the rapid increase in network connection speed, it is difficult to find a complete continuous and large memory space in the system memory. In order to solve the problem of the first way, the second way is to use a plurality of description units (descriptors) to describe a plurality of data packets respectively, and each data packet can be stored in a different address in the system memory, and the processor can know the address of the data packet in the system memory through the pointer of the corresponding description unit. However, although the second method may not require a complete continuous memory space in the system memory, if a large number of small data packets are received, the number of times of reading and writing of the description unit is too frequent, which results in waste of bandwidth and insufficient bandwidth, and thus the data packets cannot be efficiently transmitted.
Disclosure of Invention
It is therefore an object of the present invention to provide a method for accessing a system memory, which can effectively reduce the number of times of reading and writing using a description unit without configuring a complete continuous memory space in the system memory, so as to solve the problems described in the prior art.
In one embodiment of the invention, a method for accessing a system memory is disclosed, comprising the steps of reading a description unit from the system memory, wherein the description unit comprises a buffer start address field and a buffer size field, wherein the buffer start address field comprises a start address of a buffer in the system memory and the buffer size field comprises a size of the buffer, receiving a plurality of data packets and writing the plurality of data packets into the buffer, modifying the description unit according to the plurality of data packets written into the buffer to generate a modified description unit, wherein the modified description unit comprises information of only a portion of the plurality of data packets or information of no data packet in the plurality of data packets, and writing the modified description unit into the system memory.
In one embodiment of the invention, a processing circuit disposed on a network card is disclosed for reading a description unit from a system memory external to the network card, wherein the description unit comprises a buffer start address field and a buffer size field, wherein the buffer start address field comprises a start address of a buffer in the system memory, and the buffer size field comprises a size of the buffer, receiving a plurality of data packets and writing the plurality of data packets into the buffer, modifying the description unit according to the plurality of data packets written into the buffer to generate a modified description unit, wherein the modified description unit comprises information of only a part of the plurality of data packets or information of no data packet in the plurality of data packets, and writing the modified description unit into the system memory.
Drawings
Fig. 1 is a schematic diagram of an electronic device according to an embodiment of the invention.
Fig. 2 is a schematic diagram of a description unit prepared by a central processing unit and a modified description unit generated by a processing circuit.
FIG. 3 is a diagram illustrating a modified description unit and a corresponding buffer according to an embodiment of the present invention.
Fig. 4 is a schematic diagram of a modified description unit and a corresponding buffer according to another embodiment of the invention.
FIG. 5 is a method of accessing system memory according to one embodiment of the invention.
Detailed Description
Fig. 1 is a schematic diagram of an electronic device 100 according to an embodiment of the invention. As shown in fig. 1, the electronic device 100 includes a network card 110, a system memory 120, a central processing unit 130 and a storage unit 140, wherein the network card 110 includes a processing circuit 112 and a network connector 114, the network connector 114 is used for connecting to the network cable 102, the system memory 120 can be implemented by using a static random access memory (Static Random Access Memory, SRAM) or a dynamic random access memory (Dynamic Random Access Memory, DRAM), the system memory 120 includes a plurality of areas, one area is used for storing a plurality of description units 122_1 to 122_n, each of the description units 122_1 to 122_n is respectively used for pointing to a plurality of buffers 124_1 to 124_n, and the storage unit 140 includes at least one driver 142, wherein the driver 142 is used for executing operations related to the network card 110. In the present embodiment, the electronic device 100 may be any electronic device that needs to use network functions, such as a desktop computer, a notebook computer, etc., and the network card 110 may be built into or externally connected to the electronic device 100.
In the present embodiment, each of the description units 122_1 to 122_n has a fixed size, for example, 16 bytes or 32 bytes, and in one embodiment, the description units 122_1 to 122_n are located at fixed addresses in the system memory 120, and the description units 122_1 to 122_n are consecutive in memory addresses, but the invention is not limited thereto. In another embodiment, the description units 122_1 to 122_n do not have to have a fixed address in the system memory 120, and the description units 122_1 to 122_n do not have to be consecutive in memory addresses, as long as the description unit can indicate the memory address of the next description unit, for example, the description unit 122_1 contains information pointing to the starting memory address of the description unit 122_2. In addition, the addresses of the plurality of buffers 124_1-124_N in the system memory 120 are not fixed, and the buffers 124_1-124_N may be discontinuous with each other in memory addresses.
In the operation of the electronic device 100, the cpu 130 reads the driver 142 from the storage unit 140, and executes the driver 142 to start the operation related to the network card 110, i.e. to receive the data packet received from the network card 110 via the network cable 102, or to transmit the data to other electronic devices via the network card 110. In addition, the system memory 120 is used to temporarily store network data packets from outside, data that needs to be transmitted to other electronic devices through the network card 110, or other system data. Since the present invention focuses on providing a method for storing data packets and related information, the following embodiments are described only with respect to the content of the electronic device 100 that receives network data packets from outside and stores the network data packets in the system memory 120.
First, the CPU 130 prepares the contents of the description units 122_1 to 122_N in the system memory 120, wherein the description units 122_1 to 122_N are used for describing the information of the corresponding buffers 124_1 to 124_N, respectively. For example, referring to the schematic diagram of the description unit 122_1 shown in fig. 2, the description unit 122_1 includes at least three fields, namely an own bit field, a buffer start address field and a buffer size field, wherein the control bit field is used to indicate whether the description unit 122_1 is currently available for the network card 110, for example, the cpu 130 sets the control bit to "0" to indicate that the network card 110 can currently use the description unit 122_1 and the corresponding buffer 124_1, the buffer start address field is used to indicate the start address of the buffer 124_1 in the system memory 120, and the buffer size field is used to indicate the capacity of the buffer 124_1. Similarly, each of the remaining description units 122_2-122_n may have the same structure, e.g., the description unit 122_2 includes a control bit corresponding to the buffer 124_2, a buffer start address, and a buffer size, and so on.
In one embodiment, the buffers 124_1-124_N do not have a fixed address, for example, the buffer 124_1 may have a different address when the CPU 130 prepares the contents of the description unit 122_1 next time, and the start address of the buffer in the description unit 122_1 is different accordingly. In one embodiment, the size of each buffer 124_1-124_n is greater than or equal to the maximum data size of one ethernet packet, for example, 1.5 Kilobytes (KB), but the invention is not limited thereto. In other embodiments, the size of each buffer 124_1-124_n may be smaller than the maximum data size of one ethernet packet.
Then, when the processing circuit 112 of the network card 110 receives one or more data packets from the outside, the processing circuit 112 sequentially reads the description units 122_1 to 122_n to determine which description unit is available for the processing circuit 112, for example, the processing circuit 112 sequentially reads the control bits in the description units 122_1 to 122_n, and selects the description unit with the control bit of "0" to perform subsequent operations. For convenience of description, the following embodiment is illustrated with the processing circuit 112 selecting the description unit 122_1.
After reading the description unit 122_1, the processing circuit 112 determines how many currently received data packets can be stored in the buffer 124_1 according to the buffer size of the buffer 124_1 recorded in the description unit 122_1. Taking fig. 3 as an example for illustration, assuming that the data packets #0 to #2 are currently received and the total data amount of the data packets #0 to #2 is smaller than the size of the buffer 124_1 after adding the relevant header #0 to #2, the processing circuit 112 may establish a corresponding header according to each data packet to record the information of the data packet and write the header together with the data Bao Yi into the buffer 124_1. Specifically, the processing circuit 112 may establish a header #0 of the packet #0, wherein the header #0 records a size and related information of the packet #0, such as an error check code like a checksum (checksum), and sequentially and continuously write the header #0 and the packet #0 to the buffer 124_1, then the processing circuit 112 establishes a header #1 of the packet #1, wherein the header #1 records a size and related information of the packet #1, and sequentially and continuously writes the header #1 and the packet #1 to the buffer 124_1, wherein the header #1 immediately follows the packet #0, then the processing circuit 112 establishes a header #2 of the packet #2, wherein the header #2 records a size and related information of the packet #2, and sequentially and continuously writes the header #2 and the packet #2 to the buffer 124_1, wherein the header #2 immediately follows the packet # 1.
In the present embodiment, since the size of the next data packet received by the processing circuit 112 is larger than the remaining space of the buffer 124_1, the processing circuit 112 does not continue to store the next data packet in the buffer 124_1, and the remaining space of the buffer 124_1 can remain blank without storing any data or store invalid data.
After the data packets #0 to #2 are written into the buffer 124_1, the processing circuit 112 modifies the content of the read description unit 122_1 so that the modified description unit 112_1_a includes at least four fields, which are a control bit field, a first packet information field, a multi-packet tag field, and a total data amount/total data packet number field, respectively. In this embodiment, the control bit may have a bit "1" to indicate that the corresponding buffer 124_1 has stored a data packet, and may also be used to inform the cpu 130 that the buffer 124_1 has only stored a data packet, the first data packet information field may include the start address of the header #0 of the data packet #0, that is, the start address of the buffer 124_1, the multi-data packet tag field may be used to indicate whether the buffer 124_1 stores a plurality of data packets, for example, the multi-data packet tag may be represented by a single bit, and the multi-data packet tag of "1" indicates that the buffer 124_1 currently stores two or more data packets, and the multi-data packet tag of "0" indicates that the buffer 124_1 currently stores only one data packet, and the total data/total data packet number field records the data amount of all data currently stored in the buffer 124_1, or the number of data packets stored in the buffer 124_1, for example, three data packets stored in the buffer 124_1 shown in fig. 3.
After the processing circuit 112 modifies the description unit 122_1, the processing circuit 112 stores the modified description unit 112_1_a back to the original address of the description unit 122_1 in the system memory 120, i.e., the processing circuit 112 uses the modified description unit 112_1_a to overwrite the description unit 122_1.
Next, the cpu 130 reads and analyzes the control bits in the description units 122_1 to 122_n, and reads the description unit with the control bit "1". In the present embodiment, the cpu 130 reads the modified description unit 112_1_a, and sequentially reads the header #0, the data packet #0, the header #1, the data packet #1, the header #2, and the data packet #2 in the buffer 124_1 according to the information in the modified description unit 112_1_a for subsequent processing. In the present embodiment, since the modified description unit 112_1_a provides the multi-packet tag field and the total data amount/total data packet number field, the cpu 130 can accurately know how much data or how many data packets need to be read from the buffer 124_1.
After the cpu 130 successfully reads the data in the buffer 124_1, the cpu 130 may additionally re-modify the modified description unit 112_1_a to the description unit 112_1, for example, use the original description unit 112_1 to overwrite the modified description unit 112_1_a for use when the processing circuit 112 of the network card 110 stores the subsequent data packet.
In the above embodiment, since the buffer area pointed by the single description unit can allow storing a plurality of data packets, the cpu 130 does not need to prepare too many description units 122_1 to 122_n in the system memory 120 for receiving a large number of small data packets, so that the space configured in the system memory 120 for storing the description units 122_1 to 122_n can be greatly reduced. In addition, although one buffer may allow a plurality of data packets to be stored, since related information (i.e., a header) of the data packets is also stored in the buffer, the description unit may not need to describe related information of each data packet in the buffer, so that the size of the description unit may be effectively reduced to avoid occupying excessive space in the system memory 120.
In the embodiment of fig. 2 and 3, the buffer 124_1 sequentially stores the header #0, the packet #0, the header #1, the packet #1, the header #2, and the packet #2, and the start address of the header #0 is pointed out by the first packet information in the modified description unit 112_1_a. However, in other embodiments, referring to fig. 4, the first packet information field in the modified describing unit 112_1_a may directly include the related information of the packet #0, such as the size of the packet #0 and the error check code, and the buffer 124_1 itself does not need to store the related information of the packet #0, i.e. the buffer 124_1 stores the packet #0, the header #1, the packet #1, the header #2, and the packet #2 in sequence. Such design variations are intended to fall within the scope of the present invention.
FIG. 5 is a method of accessing system memory according to one embodiment of the present invention, while referring to the description of the above embodiment, the flow of FIG. 5 is as follows.
And 500, starting the flow.
Step 502, the central processing unit configures a plurality of description units and a plurality of corresponding buffers in the system memory.
Step 504, the processing circuit of the network card reads one of the description units.
In step 506, the processing circuit stores one or more data packets and their headers in buffers corresponding to the description units.
The processing circuit modifies 508 the description unit according to the one or more data packets stored in the buffer to generate a modified description unit.
The processing circuitry writes the modified description unit to system memory, step 510.
The foregoing description is only of the preferred embodiments of the present invention, and all the equivalent changes and modifications made by the claims of the present invention fall within the protection scope of the present invention.
Reference numerals illustrate:
100 electronic device
102 Network cable
110 Network card
112 Processing circuitry
114 Network connector
120 System memory
122_1 To 122_N descriptive unit
122_1_A modified description Unit
124_1 To 124_N buffer area
130 Central processing unit
140 Memory cell
142 Driver program

Claims (10)

1.一种存取系统存储器的方法,包含:1. A method for accessing a system memory, comprising: 从所述系统存储器读取一描述单元,其中所述描述单元包含缓冲区起始地址字段以及缓冲区大小字段,其中所述缓冲区起始地址字段包含缓冲区在所述系统存储器的起始地址,且所述缓冲区大小字段包含所述缓冲区的大小;Reading a description unit from the system memory, wherein the description unit comprises a buffer start address field and a buffer size field, wherein the buffer start address field comprises a start address of a buffer in the system memory, and the buffer size field comprises a size of the buffer; 接收多个数据包,并将所述多个数据包写入至所述缓冲区中;receiving a plurality of data packets, and writing the plurality of data packets into the buffer; 根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以产生修改后描述单元,其中所述修改后描述单元仅包含所述多个数据包中一部分数据包的信息或是不包含所述多个数据包中任一数据包的信息;以及Modifying the description unit according to the plurality of data packets written into the buffer to generate a modified description unit, wherein the modified description unit only includes information of a portion of the plurality of data packets or does not include information of any of the plurality of data packets; and 将所述修改后描述单元写入至所述系统存储器。The modified description unit is written to the system memory. 2.如权利要求1所述的方法,其中接收多个数据包,并将所述多个数据包写入至所述缓冲区中的步骤包含:2. The method of claim 1 , wherein the step of receiving a plurality of data packets and writing the plurality of data packets into the buffer comprises: 分别产生所述多个数据包的标头,其中每一个数据包的标头包含所述数据包的信息;以及generating headers for the plurality of data packets respectively, wherein the header of each data packet includes information of the data packet; and 将所述多个数据包,连同所对应的标头,依序写入至所述缓冲区中。The plurality of data packets, together with the corresponding headers, are sequentially written into the buffer. 3.如权利要求2所述的方法,其中根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以产生所述修改后描述单元的步骤包含:3. The method of claim 2 , wherein the step of modifying the description unit according to the plurality of data packets written to the buffer to generate the modified description unit comprises: 根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以加入第一个数据包信息字段以及总数据量/总数据包数量字段,以产生所述修改后描述单元,其中所述第一个数据包信息字段包含所述缓冲区在所述系统存储器的起始地址或是所述多个数据包中第一个数据包的标头的地址;以及所述总数据量/总数据包数量字段记录了所述缓冲区中所存储的总数据量或是所述多个数据包的数量。The description unit is modified according to the multiple data packets written to the buffer to add a first data packet information field and a total data volume/total number of data packets field to generate the modified description unit, wherein the first data packet information field includes the starting address of the buffer in the system memory or the address of the header of the first data packet among the multiple data packets; and the total data volume/total number of data packets field records the total amount of data stored in the buffer or the number of the multiple data packets. 4.如权利要求3所述的方法,其中所述修改后描述单元还包含多数据包标签字段,其中所述多数据包标签字段记录所述缓冲区是否存储了多个数据包,或是仅存储了一个数据包。4. The method of claim 3, wherein the modified description unit further comprises a multi-packet tag field, wherein the multi-packet tag field records whether the buffer stores multiple packets or only stores one packet. 5.如权利要求2所述的方法,其中所述数据包的信息包含所述数据包的大小。The method of claim 2 , wherein the information of the data packet includes the size of the data packet. 6.如权利要求1所述的方法,其中所述多个数据包包含第一数据包以及至少一个第二数据包,以及接收多个数据包,并将所述多个数据包写入至所述缓冲区中的步骤包含:6. The method of claim 1 , wherein the plurality of data packets include a first data packet and at least one second data packet, and the step of receiving the plurality of data packets and writing the plurality of data packets into the buffer comprises: 分别产生所述至少一个第二数据包中每一个数据包的标头,其中所述至少一个第二数据包中每一个第二数据包的标头包含了所述第二数据包的信息;以及respectively generating a header for each of the at least one second data packet, wherein the header of each of the at least one second data packet comprises information of the second data packet; and 将所述第一数据包、所述至少一个第二数据包连同所对应的标头,依序写入至所述缓冲区中。The first data packet, the at least one second data packet and the corresponding headers are sequentially written into the buffer. 7.如权利要求6所述的方法,其中根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以产生所述修改后描述单元的步骤包含:7. The method of claim 6 , wherein the step of modifying the description unit according to the plurality of data packets written to the buffer to generate the modified description unit comprises: 根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以加入第一个数据包信息字段以及总数据量/总数据包数量字段,以产生所述修改后描述单元,其中所述第一个数据包信息字段包含所述第一数据包的信息以及所述第一数据包在系统存储器中的地址;以及所述总数据量/总数据包数量字段记录了所述缓冲区中所存储的总数据量或是所述多个数据包的数量。The description unit is modified according to the multiple data packets written to the buffer to add a first data packet information field and a total data volume/total data packet number field to generate the modified description unit, wherein the first data packet information field includes information of the first data packet and the address of the first data packet in the system memory; and the total data volume/total data packet number field records the total data volume stored in the buffer or the number of the multiple data packets. 8.如权利要求7所述的方法,其中所述第一数据包的信息包含所述第一数据包的大小,且所述第二数据包的信息包含所述第二数据包的大小。8. The method of claim 7, wherein the information of the first data packet includes a size of the first data packet, and the information of the second data packet includes a size of the second data packet. 9.如权利要求3或7所述的方法,其中所述修改后描述单元还包含多数据包标签字段,其中所述多数据包标签字段记录所述缓冲区是否存储了多个数据包,或是仅存储了一个数据包。9. The method according to claim 3 or 7, wherein the modified description unit further comprises a multi-packet tag field, wherein the multi-packet tag field records whether the buffer stores multiple data packets or only stores one data packet. 10.一种设置于网卡上的处理电路,其用以执行以下操作:10. A processing circuit provided on a network card, configured to perform the following operations: 从所述网卡外部的系统存储器读取一描述单元,其中所述描述单元包含缓冲区起始地址字段以及缓冲区大小字段,其中所述缓冲区起始地址字段包含缓冲区在所述系统存储器的起始地址,且所述缓冲区大小字段包含所述缓冲区的大小;Reading a description unit from a system memory external to the network card, wherein the description unit includes a buffer start address field and a buffer size field, wherein the buffer start address field includes a start address of a buffer in the system memory, and the buffer size field includes a size of the buffer; 接收多个数据包,并将所述多个数据包写入至所述缓冲区中;receiving a plurality of data packets, and writing the plurality of data packets into the buffer; 根据写入至所述缓冲区的所述多个数据包来修改所述描述单元以产生修改后描述单元,其中所述修改后描述单元仅包含所述多个数据包中一部分数据包的信息或是不包含所述多个数据包中任一数据包的信息;以及Modifying the description unit according to the plurality of data packets written into the buffer to generate a modified description unit, wherein the modified description unit only includes information of a portion of the plurality of data packets or does not include information of any of the plurality of data packets; and 将所述修改后描述单元写入至所述系统存储器。The modified description unit is written to the system memory.
CN202111484555.4A 2021-12-07 2021-12-07 Method for accessing system memory and processing circuit arranged on network card Active CN116243844B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111484555.4A CN116243844B (en) 2021-12-07 2021-12-07 Method for accessing system memory and processing circuit arranged on network card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111484555.4A CN116243844B (en) 2021-12-07 2021-12-07 Method for accessing system memory and processing circuit arranged on network card

Publications (2)

Publication Number Publication Date
CN116243844A CN116243844A (en) 2023-06-09
CN116243844B true CN116243844B (en) 2025-09-16

Family

ID=86626396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111484555.4A Active CN116243844B (en) 2021-12-07 2021-12-07 Method for accessing system memory and processing circuit arranged on network card

Country Status (1)

Country Link
CN (1) CN116243844B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426117A (en) * 2016-05-23 2017-12-01 迈络思科技Tlv有限公司 Effective use of buffer space in the network switch
CN113204311A (en) * 2020-01-31 2021-08-03 西部数据技术公司 NVMe SGL bit bucket transfer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601713B1 (en) * 2013-10-15 2020-03-24 Marvell Israel (M.I.S.L) Ltd. Methods and network device for performing cut-through
CN109564502B (en) * 2016-08-19 2020-12-08 华为技术有限公司 Method and device for processing access request in storage device
KR102719531B1 (en) * 2018-12-17 2024-10-21 에스케이하이닉스 주식회사 Data Storage Device and Operation Method Thereof, Storage System Having the Same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426117A (en) * 2016-05-23 2017-12-01 迈络思科技Tlv有限公司 Effective use of buffer space in the network switch
CN113204311A (en) * 2020-01-31 2021-08-03 西部数据技术公司 NVMe SGL bit bucket transfer

Also Published As

Publication number Publication date
CN116243844A (en) 2023-06-09

Similar Documents

Publication Publication Date Title
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
US11422717B2 (en) Memory addressing methods and associated controller, memory device and host
US6732249B1 (en) Host computer virtual memory within a network interface adapter
US6662287B1 (en) Fast free memory address controller
CN114816263B (en) Memory access method and intelligent processing device
CN115249057A (en) System and computer-implemented method for graph node sampling
CN115033185A (en) Memory access processing method and device, storage device, chip, board card and electronic equipment
US11895043B2 (en) Method for accessing system memory and associated processing circuit within a network card
US10853255B2 (en) Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover
CN116243844B (en) Method for accessing system memory and processing circuit arranged on network card
US6985974B1 (en) Memory interface controller for a network device
CN115190102B (en) Information broadcasting method, device, electronic unit, SOC and electronic equipment
CN118151838A (en) Memory device, flash memory controller and control method thereof
US6728861B1 (en) Queuing fibre channel receive frames
CN111966486A (en) Data acquisition method, FPGA system and readable storage medium
US9430379B1 (en) Dynamic random access memory controller
US8364882B2 (en) System and method for executing full and partial writes to DRAM in a DIMM configuration
US12547324B2 (en) Electronic device for accessing an SD card with combined address, and method thereof
TWI764311B (en) Memory access method and intelligent processing apparatus
CN118363901B (en) PCIe device, electronic component and electronic device
US20250298735A1 (en) Interleaved memory transaction tracking for transactions with unrelated lengths
US20250103211A1 (en) Electronic device and host device coupled to memory device
US20040215836A1 (en) System and method to initialize registers with an EEPROM stored boot sequence
CN118151839A (en) Memory device, flash memory controller and control method thereof
CN121255096A (en) Data processing method, data processing system, device, apparatus, medium, and product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant