[go: up one dir, main page]

KR20180105978A - Operation method for electronic device comprising on-chip network - Google Patents

Operation method for electronic device comprising on-chip network Download PDF

Info

Publication number
KR20180105978A
KR20180105978A KR1020170033370A KR20170033370A KR20180105978A KR 20180105978 A KR20180105978 A KR 20180105978A KR 1020170033370 A KR1020170033370 A KR 1020170033370A KR 20170033370 A KR20170033370 A KR 20170033370A KR 20180105978 A KR20180105978 A KR 20180105978A
Authority
KR
South Korea
Prior art keywords
memory
data
network interface
interface unit
command
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.)
Withdrawn
Application number
KR1020170033370A
Other languages
Korean (ko)
Inventor
배영환
Original Assignee
한국전자통신연구원
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 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020170033370A priority Critical patent/KR20180105978A/en
Publication of KR20180105978A publication Critical patent/KR20180105978A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

A method for operating an electronic device including a processor, first and second memory devices, and an on-chip network connecting the processor and the first and second memory devices includes the steps of: providing a data transmission command to the first memory device through the on-chip network in the processor; providing data read in the first memory device to the second memory device through the on-chip network in response to the transmission command; writing the provided data in the second memory device; and providing a data writing completion signal to the processor through the on-chip network in the second memory device. Accordingly, the present invention can improve data communication efficiency.

Description

온칩 네트워크를 포함하는 전자 장치의 동작 방법{OPERATION METHOD FOR ELECTRONIC DEVICE COMPRISING ON-CHIP NETWORK}[0001] OPERATION METHOD FOR ELECTRONIC DEVICE COMPRISING ON-CHIP NETWORK [0002]

본 발명은 전자 장치에 관한 것으로, 좀 더 상세하게는 온칩 네트워크를 포함하는 전자 장치의 동작 방법에 관한 것이다.The present invention relates to electronic devices, and more particularly, to a method of operating an electronic device including an on-chip network.

시스템 온칩(System on Chip, SoC)은 다양한 기능을 수행하는 복잡한 시스템을 하나의 칩으로 집약적으로 구현하는 기술이다. 종래의 시스템 온칩은 시스템 온칩을 내의 IP(Intellectual Property)들을 서로 연결하기 위하여 버스를 이용하였다. 그러나, 시스템 온칩의 집적화 및 고성능화에 대한 수요가 제기됨에 따라, 시스템 온칩의 집적도는 증가하고, IP들의 개수가 증가하고 있다. 또한, IP들 사이의 통신을 위한 정보량이 급격하게 증가하고 있다. 따라서, 버스를 이용한 토폴로지 설계는 공통 배선을 통하여 데이터를 공유하는 점에서 정보 처리에 한계를 갖는다. System on Chip (SoC) is a technology that intensively implements a complex system that performs various functions on one chip. Conventional system-on-chip uses a bus to interconnect IPs (Intellectual Property) in a system-on-chip. However, as the demand for integration and high performance of system-on-chip is raised, the degree of integration of system-on-chip increases and the number of IPs is increasing. In addition, the amount of information for communication between IPs is rapidly increasing. Therefore, the topology design using the bus has limitations on information processing in that data is shared through the common wiring.

이러한 시스템 온칩의 구조적 한계를 극복하기 위하여 컴퓨터 네트워크 기술을 칩 내에 응용하여 IP들을 연결하는 온칩 네트워크(On-Chip Network) 기술이 대두되고 있다. 온칩 네트워크의 네트워크 인터페이스 유닛들을 통해 IP들은 서로 통신할 수 있다. 이러한 온칩 네트워크 기술에 있어서, 여전히 대량의 데이터를 효율적으로 전송하기 위한 요구가 존재한다. In order to overcome the structural limitations of the system-on-a-chip, on-chip network technology for connecting IPs by applying computer network technology in a chip is emerging. IPs can communicate with each other through the network interface units of the on-chip network. In this on-chip network technology, there is still a need to efficiently transmit a large amount of data.

본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명은 대량의데이터를 효과적으로 전송하기 위한 온칩 네트워크를 포함하는 전자 장치의 동작 방법을 제공할 수 있다.SUMMARY OF THE INVENTION The present invention provides a method of operating an electronic device including an on-chip network for efficiently transmitting a large amount of data.

본 발명의 실시 예에 따른 프로세서, 제 1 및 제 2 메모리 장치, 그리고 프로세서와 제 1 및 제 2 메모리 장치를 연결하는 온칩 네트워크를 포함하는 전자 장치의 동작 방법은, 프로세서에서, 데이터 전송 커맨드를 온칩 네트워크를 통해 제 1 메모리 장치에 제공하는 단계, 전송 커맨드에 응답하여, 제 1 메모리에서 독출된 데이터를 온칩 네트워크를 통해 제 2 메모리에 제공하는 단계, 제 2 메모리에서, 제공된 데이터를 기입하는 단계, 그리고 제 2 메모리에서, 데이터 기입 완료 신호를 온칩 네트워크를 통해 프로세서에 제공하는 단계를 포함할 수 있다.An operating method of an electronic device including a processor, a first and a second memory device, and an on-chip network connecting a processor and first and second memory devices according to an embodiment of the present invention, Providing the data read from the first memory to the second memory via the on-chip network in response to the transfer command, writing the provided data in the second memory, And in a second memory, providing a data write completion signal to the processor via the on-chip network.

본 발명의 실시 예에 따른 온칩 네트워크를 포함하는 전자 장치의 동작 방법은 데이터의 통신 효율을 높일 수 있다. 또한, DMA 유닛을 사용하지 않으므로, 전자 장치의 면적 및 소모 전력을 줄일 수 있다.The operation method of the electronic device including the on-chip network according to the embodiment of the present invention can increase the data communication efficiency. Further, since the DMA unit is not used, the area and power consumption of the electronic device can be reduced.

도 1은 온칩 네트워크를 포함하는 전자 장치의 구성 및 데이터 전송 방법을 예시적으로 보여주는 그림이다.
도 2는 도 1에 도시된 온칩 네트워크의 구성을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 전자 장치의 구성 및 데이터 전송 방법을 보여주는 그림이다.
도 4 및 도 5는 도 3에 도시된 전송 커맨드의 패킷 형식 및 실시 예를 보여주는 그림이다.
도 6 및 도 7은 도 3에 도시된 쓰기 커맨드의 패킷 형식 및 실시 예를 보여주는 그림이다.
도 8 및 도 9는 도 3에 도시된 쓰기 완료 신호의 패킷 형식 및 실시 예를 보여주는 그림이다.
도 10은 도 3에 도시된 제 2 네트워크 인터페이스 유닛의 동작을 설명하기 위한 순서도이다.
도 11은 도 3에 도시된 제 3 네트워크 인터페이스 유닛의 동작을 설명하기 위한 순서도이다.
1 is a diagram illustrating an exemplary configuration and data transmission method of an electronic device including an on-chip network.
2 is a block diagram illustrating the configuration of the on-chip network shown in FIG.
3 is a diagram illustrating a configuration of an electronic device and a data transmission method according to an embodiment of the present invention.
FIG. 4 and FIG. 5 are diagrams showing a packet format and an embodiment of the transmission command shown in FIG.
6 and 7 are diagrams showing a packet format and an embodiment of the write command shown in FIG.
FIG. 8 and FIG. 9 are diagrams showing the packet format and the embodiment of the write completion signal shown in FIG.
10 is a flowchart for explaining the operation of the second network interface unit shown in FIG.
11 is a flowchart for explaining the operation of the third network interface unit shown in FIG.

이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.In the following, embodiments of the present invention will be described in detail and in detail so that those skilled in the art can easily carry out the present invention.

도 1은 온칩 네트워크를 포함하는 전자 장치의 구성 및 데이터 전송 방법을 예시적으로 보여주는 그림이다. 도 1을 참조하면, 전자 장치(100)는 프로세서(110), 제 1 메모리(120), 제 2 메모리(130), DMA(Direct Memory Access) 유닛(140), 그리고 온칩 네트워크(150)를 포함할 수 있다. 예를 들어, 전자 장치(100)는 상술한 구성 요소들을 하나의 칩에 집적한 SoC(System on Chip) 형태로 구현될 수 있다. 혹은, 전자 장치(100)는 상술한 구성 요소들 중 적어도 하나가 모듈(module) 또는 칩(chip)으로 구현되도록 구성될 수 있다.1 is a diagram illustrating an exemplary configuration and data transmission method of an electronic device including an on-chip network. 1, an electronic device 100 includes a processor 110, a first memory 120, a second memory 130, a DMA (Direct Memory Access) unit 140, and an on-chip network 150 can do. For example, the electronic device 100 may be implemented as a SoC (System on Chip) in which the above-described components are integrated on one chip. Alternatively, the electronic device 100 may be configured such that at least one of the components described above is implemented as a module or a chip.

전자 장치(100)는 하나 이상의 프로세서들을 포함하는 컴퓨팅 장치(예컨대, 퍼스널 컴퓨터(Personal Computer), 주변 장치, 디지털 카메라, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트폰(Smartphone), 태블릿(Tablet), 웨어러블(Wearable) 장치 등)에 포함될 수 있다. 다만, 본 발명은 상술한 예들에 제한되지 않는다.The electronic device 100 may be a computing device (e.g., a personal computer, a peripheral device, a digital camera, a PDA, a portable media player (PMP), a smartphone, A tablet, a wearable device, or the like). However, the present invention is not limited to the above-mentioned examples.

프로세서(110)는 전자 장치(100)의 전반적인 동작들을 관리하고 처리하기 위해, 다양한 산술 연산/논리 연산을 수행할 수 있다. 예를 들어, 프로세서(110)는 범용 프로세서 또는 어플리케이션 프로세서(Application Processor)를 포함하는 프로세서 회로 또는 시스템일 수 있다. 프로세서(110)는 포트(a)를 통해 온칩 네트워크(150)와 연결된다. 프로세서(110)는 온칩 네트워크(150)를 통해 DMA 유닛(140), 제 1 메모리(120), 그리고 제 2 메모리(130)와 통신할 수 있다.The processor 110 may perform various arithmetic / logic operations to manage and process the overall operations of the electronic device 100. For example, the processor 110 may be a processor circuit or system that includes a general purpose processor or an application processor. The processor 110 is connected to the on-chip network 150 via port a. The processor 110 may communicate with the DMA unit 140, the first memory 120, and the second memory 130 via the on-chip network 150.

제 1 및 제 2 메모리(120, 130)는 각각 포트(c, d)를 통해 온칩 네트워크(150)와 연결된다. 제 1 및 제 2 메모리(120, 130)는 각각, 온칩 네트워크(150)를 통해, 프로세서(110)로부터 제공된 데이터 또는 프로세서(110)로 제공될 데이터를 저장할 수 있다. 온칩 네트워크(150)를 통해, 제 1 및 제 2 메모리(120, 130)는 각각 서로 통신하거나 DMA 유닛(140)과 통신할 수 있다. The first and second memories 120 and 130 are connected to the on-chip network 150 via ports c and d, respectively. The first and second memories 120 and 130 may each store data provided from the processor 110 or data to be provided to the processor 110 via the on-chip network 150. [ Through the on-chip network 150, the first and second memories 120 and 130 can communicate with each other or with the DMA unit 140, respectively.

제 1 메모리 또는 제 2 메모리(120, 130)는 각각 휘발성 메모리 또는 불휘발성 메모리를 포함하는 어떠한 저장 매체로든 구현될 수 있다. 예를 들어, 제 1 메모리 또는 제 2 메모리(120, 130)가 휘발성 메모리를 포함하는 경우, 제 1 메모리 또는 제 2 메모리(120, 130)는 DRAM(Dynamic random access memory), SRAM(Static random access memory), TRAM(Thyristor RAM), Z-RAM(Zero capacitor RAM), 또는 TTRAM(Twin transistor RAM), MRAM 등을 포함할 수 있다. 예를 들어, 제 1 메모리 또는 제 2 메모리(120, 130)는 UDIMM(Unbuffered Dual In-Line Memory Module), RDIMM(Registered DIMM), LRDIMM(Load Reduced DIMM), NVDIMM(Non Volatile DIMM) 등을 포함할 수 있다. The first memory or the second memory 120, 130 may each be implemented in any storage medium including volatile memory or non-volatile memory. For example, when the first or second memory 120 or 130 includes a volatile memory, the first or second memory 120 or 130 may be a dynamic random access memory (DRAM), a static random access memory (SRAM) memory, TRAM (Thyristor RAM), Zero RAM (Z-RAM), or Twin transistor RAM (TTRAM), MRAM, and the like. For example, the first and second memories 120 and 130 may include an unbuffered dual in-line memory module (UDIMM), a registered random access memory (RDIMM), a load reduced random access memory (LRDIMM) can do.

예를 들어, 제 1 메모리 또는 제 2 메모리(120, 130)가 불휘발성 메모리를 포함하는 경우, 제 1 메모리 또는 제 2 메모리(120, 130)는 EPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(Flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory:NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)를 포함할 수 있다. 불휘발성 메모리의 단위 셀에는 1비트 또는 그 이상의 비트들이 저장될 수 있다. 상술한 예들은 본 발명을 제한하기 위한 것은 아니다.For example, when the first memory or the second memory 120 or 130 includes a non-volatile memory, the first memory or the second memory 120 and 130 may be electrically erasable programmable read-only memory (EPROM) (MRAM), a conductive bridging RAM (CBRAM), a FeRAM (Ferroelectric RAM), a PRAM (Phase change RAM), a Resistive RAM (RRAM) ), Nanotube RRAMs, polymer RAMs (PoRAMs), nano floating gate memories (NFGMs), holographic memories, Molecular Electronics Memory Devices, , Or an Insulation Resistance Change Memory. One or more bits may be stored in the unit cell of the non-volatile memory. The above-mentioned examples are not intended to limit the present invention.

이하에서, 설명의 편의를 위해, 제 1 및 제 2 메모리(120, 130)가 각각 단일 메모리 장치를 포함하는 것으로 가정한다. 다만, 상술한 바와 같이, 본 발명은 다양한 메모리 장치에 적용될 수 있음은 쉽게 이해될 것이다.Hereinafter, for convenience of explanation, it is assumed that each of the first and second memories 120 and 130 includes a single memory device. However, as described above, it will be readily understood that the present invention can be applied to various memory devices.

DMA 유닛(140)은 포트(b)를 통해 온칩 네트워크(150)와 연결된다. DMA 유닛(140)은 프로세서(110)로부터 제공된 데이터 전송 커맨드에 응답하여 복수의 연속된 데이터를 일괄적으로 처리한다. DMA 유닛(140)은 온칩 네트워크(150)를 통해 프로세서(110), 제 1 메모리(120), 그리고 제 2 메모리(130)와 통신할 수 있다. DMA unit 140 is coupled to on-chip network 150 via port b. The DMA unit 140 collectively processes a plurality of successive data in response to a data transfer command provided from the processor 110. [ The DMA unit 140 may communicate with the processor 110, the first memory 120, and the second memory 130 via the on-chip network 150.

도 1과 달리, 전자 장치(100)는 DMA 유닛(140)을 포함하지 않을 수 있다. 이 경우, 전자 장치(100)의 동작 중에, 프로세서(110)가 데이터 전송 커맨드를 제 1 메모리(120)에 제공할 수 있다. 이하에서, 예를 들어, 데이터 전송 커맨드는 제 1 메모리(120)에 저장된 32 개의 데이터를 제 2 메모리(130)로 전송하기 위한 커맨드라 가정한다. 데이터를 전송하기 위해, 먼저, 프로세서(110)는 제 1 메모리(120)에 저장된 데이터를 독출하여 프로세서(110)에 포함된 버퍼(미도시)에 저장한다. 이어, 프로세서(110)는 버퍼(미도시)에 저장된 데이터를 제 2 메모리(130)에 기입한다. 프로세서(110)는 이러한 과정을 32 개의 데이터에 대하여 반복하여 수행한다.Unlike FIG. 1, the electronic device 100 may not include the DMA unit 140. In this case, during operation of the electronic device 100, the processor 110 may provide a data transfer command to the first memory 120. In the following, for example, the data transfer command is assumed to be a command for transferring 32 pieces of data stored in the first memory 120 to the second memory 130. [ In order to transfer data, first, the processor 110 reads data stored in the first memory 120 and stores it in a buffer (not shown) included in the processor 110. [ Then, the processor 110 writes the data stored in the buffer (not shown) into the second memory 130. [ The processor 110 repeats this process for 32 pieces of data.

반면, 도 1에 도시된 바와 같이, 전자 장치(100)가 DMA 유닛(140)을 포함할 수 있다. DMA 유닛(140)은 상술한 데이터 전송 과정을 단순화할 수 있다. DMA 유닛(140)을 포함하는 전자 장치(100)가 복수의 데이터를 전송하는 동작이 이하에서 설명될 것이다.On the other hand, as shown in FIG. 1, the electronic device 100 may include a DMA unit 140. The DMA unit 140 can simplify the above-described data transfer process. The operation in which the electronic device 100 including the DMA unit 140 transmits a plurality of data will be described below.

온칩 네트워크(150)는 프로세서(110), 제 1 및 제 2 메모리(120, 130), 그리고 DMA 유닛(140)을 서로 연결한다. 예를 들어, 온칩 네트워크(150)는 단일 모듈 혹은 단일 칩으로 구성될 수 있다. 온칩 네트워크(150)의 예시적인 구성은 도 2를 참조하여 설명될 것이다.The on-chip network 150 connects the processor 110, the first and second memories 120 and 130, and the DMA unit 140 to each other. For example, the on-chip network 150 may be comprised of a single module or a single chip. An exemplary configuration of the on-chip network 150 will be described with reference to FIG.

온칩 네트워크(150)는 확장성(scalability) 및 유연성(flexibility)을 갖는다. 온칩 네트워크(150)는 전자 장치(100)의 데이터 트래픽에 따라 선택된 네트워크 구조로 설계되거나 구성될 수 있다. 온칩 네트워크(150)는 전자 장치(100)의 시스템 설계 시에 요구되는 다양한 대역폭(bandwidth) 및 대기시간(latency), QoS(Quality of service) 등을 보장하는 다양한 설정을 지원한다. The on-chip network 150 has scalability and flexibility. The on-chip network 150 may be designed or configured with a network structure selected according to the data traffic of the electronic device 100. The on-chip network 150 supports a variety of settings to ensure various bandwidth, latency, quality of service (QoS), etc. required in the system design of the electronic device 100.

도 1에 도시된 전자 장치(100)가 복수의 데이터를 제 1 메모리(120)에서 제 2 메모리(130)로 전송하는 동작은 다음과 같다. 먼저, 프로세서(110)는 포트(a), 온칩 네트워크(150), 그리고 포트(b)를 통해 DMA 유닛(140)에 데이터 전송 커맨드를 제공한다(단계 ①). 상술한 바와 같이, 데이터 전송 커맨드는 제 1 메모리(120)에 저장된 32 개의 데이터를 제 2 메모리(130)로 전송하기 위한 커맨드일 수 있다. 예를 들어, 데이터 전송 커맨드와 함께, 프로세서(110)는 제 1 메모리(120)가 연결된 네트워크 인터페이스 유닛(미도시)의 ID, 데이터가 저장된 제 1 메모리(120) 내의 주소, 데이터가 저장될 제 2 메모리(130) 내의 주소 등을 DMA 유닛(140)에 전송할 수 있다.The operation in which the electronic device 100 shown in FIG. 1 transfers a plurality of pieces of data from the first memory 120 to the second memory 130 is as follows. First, the processor 110 provides a data transfer command to the DMA unit 140 via the port a, the on-chip network 150, and the port b (step 1). As described above, the data transfer command may be a command for transferring the 32 data stored in the first memory 120 to the second memory 130. For example, in conjunction with a data transfer command, the processor 110 may determine the ID of the network interface unit (not shown) to which the first memory 120 is connected, the address in the first memory 120 where the data is stored, 2 memory 130 and the like to the DMA unit 140.

데이터 전송 커맨드에 응답하여, DMA 유닛(140)은 읽기 커맨드를 생성한다. DMA 유닛(140)은 읽기 커맨드를 포트(b), 온칩 네트워크(150), 포트(d)를 통해 제 1 메모리(120)로 전송한다(단계 ②). 읽기 커맨드에 응답하여, 제 1 메모리(120)는 저장된 데이터를 독출한다. 예를 들어, 독출된 데이터는 32 개의 데이터 중 첫 번째 데이터를 포함할 수 있다. 버스트 랭스(Burst Length)에 따라, 제 1 메모리(120)가 해당 읽기 요청에 의해 출력하는 데이터의 개수는 달라질 수 있다. 이하에서, 제 1 메모리(120)의 버스트 랭스가 1이라 가정한다. 또한, 설명의 편의를 위해 제 1 메모리(120)의 데이터 패드는 1개라 가정한다. 이 경우, 제 1 메모리(120)는 하나의 읽기 커맨드에 대하여 1 개의 데이터를 출력할 수 있다. 다만, 본 발명은 상술한 예에 제한되지 않는다.In response to the data transfer command, the DMA unit 140 generates a read command. The DMA unit 140 transmits a read command to the first memory 120 via the port b, the on-chip network 150, and the port d (step 2). In response to the read command, the first memory 120 reads the stored data. For example, the read data may include the first of the 32 data. Depending on the burst length, the number of data output by the first memory 120 in response to the read request may vary. Hereinafter, it is assumed that the burst length of the first memory 120 is 1. For convenience of explanation, it is assumed that the data pad of the first memory 120 is one. In this case, the first memory 120 can output one data for one read command. However, the present invention is not limited to the above-mentioned examples.

제 1 메모리(120)는 독출된 데이터를 DMA 유닛(140)에 제공한다(단계 ③). DMA 유닛(140)은 제공된 데이터를 버퍼(141)에 저장한다. DMA 유닛(140)은 쓰기 커맨드를 제 2 메모리(130)에 제공한다(단계 ④). DMA 유닛(140)은 쓰기 커맨드와 함께 버퍼(141)에 저장된 데이터를 제 2 메모리(130)에 제공한다. 제 2 메모리(130)는 제공된 데이터를 저장한다. 제 2 메모리(130)가 데이터를 저장한 이후, 제 1 메모리(120), 제 2 메모리(130), 그리고 DMA 유닛(140)은 32 개의 데이터 모두에 대하여 단계 ②, ③, ④를 반복한다. The first memory 120 provides the read data to the DMA unit 140 (step 3). The DMA unit 140 stores the provided data in the buffer 141. The DMA unit 140 provides the write command to the second memory 130 (step 4). The DMA unit 140 provides the data stored in the buffer 141 to the second memory 130 together with the write command. The second memory 130 stores the provided data. After the second memory 130 stores the data, the first memory 120, the second memory 130, and the DMA unit 140 repeat steps 2, 3, and 4 for all 32 data.

제 2 메모리(130)가 32 개의 데이터를 모두 저장한 이후, 제 2 메모리(130)는 DMA 유닛(140)에 쓰기 완료 신호를 전송한다(단계 ⑤). DMA 유닛(140)은 프로세서(110)에 쓰기 완료 신호를 피드백한다(단계 ⑥). 도 1의 실시 예에서, 복수의 연속된 데이터를 제 1 메모리(120)에서 제 2 메모리(130)로 전송하기 위해, 전자 장치(100)는 DMA 유닛(140)을 구비해야 한다. After the second memory 130 stores all 32 data, the second memory 130 transmits a write completion signal to the DMA unit 140 (step 5). The DMA unit 140 feeds back a write completion signal to the processor 110 (step 6). In the embodiment of FIG. 1, the electronic device 100 must have a DMA unit 140 to transfer a plurality of contiguous data from the first memory 120 to the second memory 130.

도 2는 도 1에 도시된 온칩 네트워크의 구성을 보여주는 블록도이다. 도 2를 참조하면, 온칩 네트워크(150)는 포트(a, b, c, d), 제 1 내지 제 4 네트워크 인터페이스 유닛(NIU: Network Interface Unit)(151~154), 그리고 스위치 유닛(155)를 포함할 수 있다. 2 is a block diagram illustrating the configuration of the on-chip network shown in FIG. 2, the on-chip network 150 includes ports a, b, c, and d, first to fourth network interface units (NIU) 151 to 154, . ≪ / RTI >

도 2에 도시된 온칩 네트워크(150)는 패킷 스위칭 네트워크(Packet Switching Network)로 구성된다. 온칩 네트워크(150)의 포트(a, b, c, d)와 각각 연결된 IP 코어들(예를 들어, 도 1에 도시된 프로세서(110), 제 1 및 제 2 메모리(120, 130), 그리고 DMA 유닛(140) 등) 간의 통신은 패킷의 형태로 이루어 진다. The on-chip network 150 shown in FIG. 2 is configured as a packet switching network. (E. G., Processor 110, first and second memories 120 and 130, and first and second memories 120 and 130 shown in FIG. 1) connected to ports a, b, c and d of the on- DMA unit 140, etc.) is in the form of a packet.

패킷은 헤더 필드, 주소 필드, 데이터 필드를 포함할 수 있다. 헤더 필드는 패킷의 라우팅(routing) 정보, 패킷의 종류, 패킷의 크기 등의 정보를 포함할 수 있다. 주소 필드는 패킷의 목적지의 주소를 포함할 수 있다. 예를 들어, 주소 필드는 IP 코어가 연결된 네트워크 인터페이스 유닛의 ID, 데이터가 저장된 메모리 내의 주소 등을 포함할 수 있다. 데이터 필드는 복수의 데이터가 실리는 페이로드(Payload)를 포함할 수 있다. 데이터 필드의 크기는 헤더 필드에 명기될 수 있다.The packet may include a header field, an address field, and a data field. The header field may contain information such as routing information of the packet, the type of the packet, the size of the packet, and the like. The address field may contain the address of the destination of the packet. For example, the address field may include an ID of a network interface unit to which the IP core is connected, an address in a memory where data is stored, and the like. The data field may include a payload carrying a plurality of data. The size of the data field may be specified in the header field.

제 1 네트워크 인터페이스 유닛(151)은 포트(a)와 스위치 유닛(155) 사이에 연결된다. 제 2 네트워크 인터페이스 유닛(152)은 포트(c)와 스위치 유닛(155) 사이에 연결된다. 제 3 네트워크 인터페이스 유닛(153)은 포트(d)와 스위치 유닛(155) 사이에 연결된다. 제 4 네트워크 인터페이스 유닛(154)은 포트(b)와 스위치 유닛(155) 사이에 연결된다.The first network interface unit 151 is connected between the port a and the switch unit 155. The second network interface unit 152 is connected between the port c and the switch unit 155. The third network interface unit 153 is connected between the port d and the switch unit 155. The fourth network interface unit 154 is connected between the port b and the switch unit 155.

도시되지 않았지만, 제 1 내지 제 4 네트워크 인터페이스 유닛(151~154)은 각각 마스터 네트워크 인터페이스 유닛(Master Network Interface Unit) 및 슬레이브 네트워크 인터페이스 유닛(Slave Network Interface Unit) 중 적어도 하나를 포함할 수 있다. 설명의 편의를 위해, 제 1 내지 제 4 네트워크 인터페이스 유닛(151~154)은 제 1 및 3 네트워크 인터페이스 유닛(151, 153)을 예로서 설명될 것이다. 예를 들어, 제 1 네트워크 인터페이스 유닛(151)은 마스터 네트워크 인터페이스 유닛을 포함할 수 있고, 제 3 네트워크 인터페이스 유닛(153)은 슬레이브 네트워크 인터페이스 유닛을 포함할 수 있다.Although not shown, the first to fourth network interface units 151 to 154 may include at least one of a master network interface unit and a slave network interface unit, respectively. For convenience of explanation, the first to fourth network interface units 151 to 154 will be described by taking the first and third network interface units 151 and 153 as an example. For example, the first network interface unit 151 may include a master network interface unit, and the third network interface unit 153 may include a slave network interface unit.

제 1 네트워크 인터페이스 유닛(151)의 마스터 인터페이스 유닛은 마스터 IP(예를 들어, 도 1의 프로세서(110))로부터 정보를 수신하여 스위치 유닛(155)으로 정보를 전달한다. 마스터 인터페이스 유닛은 마스터 IP로부터 수신한 정보를 패킷화하여 스위치 유닛(155)으로 출력할 수 있다. 마스터 인터페이스 유닛은 온칩 네트워크(150)에 트랜잭션(transaction)을 요청할 수 있다.The master interface unit of the first network interface unit 151 receives information from the master IP (e.g., the processor 110 of FIG. 1) and forwards the information to the switch unit 155. The master interface unit can packetize the information received from the master IP and output it to the switch unit 155. The master interface unit can request a transaction to the on-chip network 150. [

제 3 네트워크 인터페이스 유닛(153)의 슬레이브 인터페이스 유닛은 슬레이브 IP(예를 들어, 제 1 메모리(120))에 정보를 전달한다. 슬레이브 인터페이스 유닛은 패킷화된 정보를 해석하여 슬레이브 IP에 해석된 정보를 제공한다. 또한, 슬레이브 인터페이스 유닛은 슬레이브 IP로부터 대응되는 정보를 수신하고 패킷화하여 스위치 유닛(155)에 정보를 전달할 수 있다. 슬레이브 인터페이스 유닛은 트랜잭션 요청에 대응하여 서비스를 제공할 수 있다.The slave interface unit of the third network interface unit 153 transfers information to the slave IP (for example, the first memory 120). The slave interface unit interprets the packetized information and provides interpreted information to the slave IP. In addition, the slave interface unit may receive and packetize the corresponding information from the slave IP to convey information to the switch unit 155. [ The slave interface unit can provide service in response to a transaction request.

스위치 유닛(155)은 제 1 내지 제 4 네트워크 인터페이스 유닛(151~154)으로부터 출력되는 정보를 제 1 내지 제 4 네트워크 인터페이스 유닛(151~154) 중 선택된 유닛으로 제공할 수 있다. 예를 들어, 스위치 유닛(155)은 제 1 네트워크 인터페이스 유닛(151)의 마스터 인터페이스 유닛으로부터 수신한 정보를 제 2 내지 제 4 네트워크 인터페이스 유닛(152~154) 중 적어도 하나의 슬레이브 인터페이스 유닛에 제공할 수 있다. 또는, 스위치 유닛(155)은 제 2 내지 제 4 네트워크 인터페이스 유닛(152~154) 중 적어도 하나의 슬레이브 인터페이스 유닛으로부터 수신한 정보를 제 1 네트워크 인터페이스 유닛(151)의 마스터 인터페이스 유닛에 제공할 수 있다. 다만, 본 발명은 상술한 예에 제한되지 않는다.The switch unit 155 may provide the information output from the first to fourth network interface units 151 to 154 to the selected one of the first to fourth network interface units 151 to 154. For example, the switch unit 155 may supply information received from the master interface unit of the first network interface unit 151 to at least one slave interface unit of the second to fourth network interface units 152 to 154 . Alternatively, the switch unit 155 may provide information received from at least one of the slave interface units of the second to fourth network interface units 152 to 154 to the master interface unit of the first network interface unit 151 . However, the present invention is not limited to the above-mentioned examples.

도시되지 않았지만, 스위치 유닛(155)은 네트워크를 구성하기 위해 신호 전송 경로를 변경할 수 있는 복수의 스위치를 포함할 수 있다. 복수의 스위치는 각각 패킷화된 정보를 수신할 수 있다. 복수의 스위치는 각각 패킷화된 정보에 포함된 어드레스에 근거하여 적합한 포트로 정보를 제공할 수 있다. 즉, 복수의 스위치는 각각 입력 포트로 제공된 패킷들을 패킷 헤더 내에 저장된 목적지 주소에 따라 적절한 출력 포트로 연결하는 라우터(router)의 기능을 수행한다. 정보 전달을 위하여 경유되는 복수의 스위치의 개수는 스위치 각각의 특성, 네트워크의 효율성, 및 요구되는 정보 전달 경로를 고려하여 결정될 수 있다.Although not shown, the switch unit 155 may include a plurality of switches capable of changing the signal transmission path to configure the network. Each of the plurality of switches can receive packetized information. Each of the plurality of switches can provide information to the appropriate port based on the address contained in the packetized information. That is, each of the plurality of switches performs a function of a router for connecting the packets provided to the input port to the appropriate output port according to the destination address stored in the packet header. The number of the plurality of switches passed for information transmission can be determined in consideration of the characteristics of each of the switches, the efficiency of the network, and the required information transmission path.

제 1 네트워크 인터페이스 유닛(151)은 스위치 유닛(155)을 통해 제 2 내지 제 4 네트워크 인터페이스 유닛(152~154) 중 적어도 하나에 정보를 전달할 수 있다. 제 2 네트워크 인터페이스 유닛(152)은 스위치 유닛(155)을 통해 제 1, 제 3, 그리고 제 4 네트워크 인터페이스 유닛(151, 153, 154) 중 적어도 하나에 정보를 전달할 수 있다. 제 3 네트워크 인터페이스 유닛(153)은 스위치 유닛(155)을 통해 제 1, 제 2, 그리고 제 4 네트워크 인터페이스 유닛(151, 152, 154) 중 적어도 하나에 정보를 전달할 수 있다. 제 4 네트워크 인터페이스 유닛(154)은 스위치 유닛(155)을 통해 제 1 내지 제 3 네트워크 인터페이스 유닛(151~153) 중 적어도 하나에 정보를 전달할 수 있다.The first network interface unit 151 can transmit information to at least one of the second to fourth network interface units 152 to 154 via the switch unit 155. [ The second network interface unit 152 may communicate information to at least one of the first, third, and fourth network interface units 151, 153, 154 via the switch unit 155. The third network interface unit 153 may communicate information to at least one of the first, second and fourth network interface units 151, 152 and 154 via the switch unit 155. The fourth network interface unit 154 may transmit information to at least one of the first to third network interface units 151 to 153 via the switch unit 155. [

도 3은 본 발명의 실시 예에 따른 전자 장치의 구성 및 데이터 전송 방법을 보여주는 그림이다. 도 3을 참조하면, 전자 장치(1000)는 프로세서(1100), 제 1 및 제 2 메모리(1200, 1300), 그리고 온칩 네트워크(1400)를 포함할 수 있다. 프로세서(1100), 제 1 및 제 2 메모리(1200, 1300), 그리고 온칩 네트워크(1400)에 포함된 제 1 내지 제 3 네트워크 인터페이스 유닛(1410~1430)의 구성 및 기능은 도 1 및 도 2를 참조하여 설명된 바와 동일하다.3 is a diagram illustrating a configuration of an electronic device and a data transmission method according to an embodiment of the present invention. 3, an electronic device 1000 may include a processor 1100, first and second memories 1200 and 1300, and an on-chip network 1400. The configuration and functions of the first to third network interface units 1410 to 1430 included in the processor 1100, the first and second memories 1200 and 1300 and the on-chip network 1400 are shown in FIGS. 1 and 2 Are the same as those described with reference to FIG.

도 1의 전자 장치(100)와 비교하여, 도 3의 전자 장치(1000)는 도 1에 도시된 DMA 유닛(140)을 포함하지 않는다. 이러한 구성에 의해, 도 3의 전자 장치(1000)는 데이터 전송 커맨드를 보다 단순한 과정을 통해 처리할 수 있다.In contrast to the electronic device 100 of FIG. 1, the electronic device 1000 of FIG. 3 does not include the DMA unit 140 shown in FIG. With this configuration, the electronic device 1000 of FIG. 3 can process the data transfer command through a simpler process.

도 3에 도시된 전자 장치(1000)가 복수의 데이터를 전송하는 동작은 다음과 같다. 먼저, 프로세서(1100)는 포트(a'), 제 1 네트워크 인터페이스 유닛(1410), 스위치 유닛(1440), 제 2 네트워크 인터페이스 유닛(1420), 그리고 포트(b')를 통해 제 1 메모리(1200)에 데이터 전송 커맨드를 제공한다(단계 ①). 도 1에서 기술한 바와 같이, 데이터 전송 커맨드는 제 1 메모리(1200)에 저장된 32 개의 데이터를 제 2 메모리(1300)로 전송하기 위한 커맨드일 수 있다. 데이터 전송 커맨드의 패킷 형식 및 그 실시 예는 도 4 및 도 5를 참조하여 자세히 설명될 것이다.The operation in which the electronic device 1000 shown in FIG. 3 transmits a plurality of data is as follows. First, the processor 1100 is connected to the first memory 1200 (a ') via a port a', a first network interface unit 1410, a switch unit 1440, a second network interface unit 1420, and a port b ' (Step < 1 >). As described in FIG. 1, the data transfer command may be a command for transferring 32 pieces of data stored in the first memory 1200 to the second memory 1300. The packet format of the data transfer command and its embodiment will be described in detail with reference to FIG. 4 and FIG.

데이터 전송 커맨드에 응답하여, 제 1 메모리(1200)는 저장된 데이터를 메모리 셀로부터 독출한다. 포트(b'), 제 2 네트워크 인터페이스 유닛(1420), 스위치 유닛(1440), 제 3 네트워크 인터페이스 유닛(1430), 그리고 포트(c')를 통해, 제 1 메모리(1200)는 독출된 데이터를 데이터의 쓰기 커맨드와 함께 제 2 메모리(1300)로 전송한다(단계 ②). 예를 들어, 독출된 데이터는 32 개의 데이터 중 첫 번째 데이터를 포함할 수 있다. 데이터의 쓰기 커맨드의 패킷 형식 및 그 실시 예는 도 6 및 도 7을 참조하여 자세히 설명될 것이다.In response to the data transfer command, the first memory 1200 reads the stored data from the memory cell. Through the port b ', the second network interface unit 1420, the switch unit 1440, the third network interface unit 1430 and the port c', the first memory 1200 stores the read data To the second memory 1300 together with the data write command (step 2). For example, the read data may include the first of the 32 data. The packet format of the write command of the data and its embodiment will be described in detail with reference to Figs. 6 and 7. Fig.

도 1에서 가정한 바와 같이, 제 1 메모리(1200)의 버스트 랭스는 1이고, 제 1 메모리(1200)는 하나의 데이터 패드를 포함한다고 가정한다. 32 개의 데이터를 모두 출력하기 위해, 제 1 메모리(1200)는 단계 ②를 32번 반복할 수 있다. 제 1 메모리(1200)의 버스트 랭스 또는 데이터 패드의 수에 따라, 제 1 메모리(1200)가 단계 ②를 수행하는 횟수는 달라질 수 있다. 예를 들어, 버스트 랭스 또는 데이터 패드의 수가 증가하면, 제 1 메모리(1200)가 하나의 읽기 커맨드에 의해 출력하는 데이터의 수가 증가한다. 이 경우, 제 1 메모리(1200)가 단계 ②를 수행하는 횟수는 줄어들 수 있다.As assumed in FIG. 1, it is assumed that the burst length of the first memory 1200 is 1, and that the first memory 1200 includes one data pad. To output all 32 data, the first memory 1200 may repeat step (2) 32 times. Depending on the burst length of the first memory 1200 or the number of data pads, the number of times the first memory 1200 performs step 2 may vary. For example, when the number of burst lengths or data pads increases, the number of data that the first memory 1200 outputs by one read command increases. In this case, the number of times the first memory 1200 performs step (2) may be reduced.

제 2 메모리(1300)는 제공된 32 개의 데이터를 메모리 셀에 기입한다. 기입이 완료된 이후, 제 2 메모리(1300)는 쓰기 완료 신호를 생성한다. 포트(c'), 제 3 네트워크 인터페이스 유닛(1430), 스위치 유닛(1440), 제 1 네트워크 인터페이스 유닛(1410), 그리고 포트(a')를 통해, 제 2 메모리(1300)는 쓰기 완료 신호를 프로세서(1100)에 제공한다(단계 ③). 쓰기 완료 신호의 패킷 형태 및 그 실시 예는 도 8 및 도 9를 참조하여 자세히 설명될 것이다.The second memory 1300 writes the provided 32 pieces of data to the memory cell. After the writing is completed, the second memory 1300 generates a writing completion signal. Through the port c ', the third network interface unit 1430, the switch unit 1440, the first network interface unit 1410 and the port a', the second memory 1300 receives a write complete signal Processor 1100 (step 3). The packet type of the write completion signal and its embodiment will be described in detail with reference to FIGS. 8 and 9. FIG.

상술한 바와 같이, 도 3의 전자 장치(1000)는 DMA 유닛을 포함하지 않는다. 도 3의 전자 장치(1000) 내에서 복수의 데이터의 전송이 수행되는 과정은 DMA 유닛을 거치지 않고 수행된다. 즉, 데이터의 전송 커맨드에 의해, 데이터는 제 1 메모리(1200)에서 제 2 메모리(1300)로 직접 전송된다. 따라서, 데이터의 전송 과정이 단순화된다. 결과적으로, 전송 커맨드에 따른 IP 코어들 사이의 복수의 데이터의 전송 속도가 증가될 수 있다.As described above, the electronic device 1000 of Fig. 3 does not include a DMA unit. The process of transferring a plurality of data in the electronic device 1000 of FIG. 3 is performed without going through the DMA unit. That is, the data is directly transferred from the first memory 1200 to the second memory 1300 by the data transfer command. Therefore, the data transmission process is simplified. As a result, the transmission speed of a plurality of data between IP cores according to the transmission command can be increased.

도 4 및 도 5는 도 3에 도시된 전송 커맨드의 패킷 형식 및 실시 예를 보여주는 그림이다. 도 4 및 도 5의 그림은 도 3을 참조하여 설명될 것이다. 도 4를 참조하면, 전송 커맨드의 패킷은 커맨드(Command) 필드, Target ID_From 필드, 소스(Source) ID 필드, Target ID_To 필드, Target Address_From 필드, Target Address_To 필드, 그리고 페이로드(Payload) 필드를 포함할 수 있다. 필드의 이름은 예시적인 것으로, 본 발명은 이에 제한되지 않는다.FIG. 4 and FIG. 5 are diagrams showing a packet format and an embodiment of the transmission command shown in FIG. 4 and 5 will be described with reference to FIG. 4, a packet of a transmission command includes a Command field, a Target ID_From field, a Source ID field, a Target ID_To field, a Target Address_From field, a Target Address_To field, and a Payload field . The names of the fields are illustrative, and the present invention is not limited thereto.

커맨드 필드는 해당 패킷의 종류를 정의한다. 커맨드 필드에는 읽기 커맨드, 쓰기 커맨드, 쓰기 데이터, 읽기 데이터 등의 정보가 기재될 수 있다. 도 5의 실시 예에서, 커맨드 필드에 데이터의 전송 커맨드가 기재된 것으로 도시되었다. 도 1 내지 도 3에서 상술한 바와 같이, 데이터의 전송 커맨드는 제 1 메모리(1200)에 저장된 32 개의 데이터를 제 2 메모리(1300)로 전송하기 위한 커맨드일 수 있다.The command field defines the type of the packet. In the command field, information such as a read command, a write command, write data, and read data can be described. In the embodiment of FIG. 5, a command for transmitting data is described in the command field. As described above with reference to FIGS. 1 to 3, the data transfer command may be a command for transferring the 32 data stored in the first memory 1200 to the second memory 1300.

다시 도 4로 돌아오면, Target ID_From 필드에는 전송될 데이터가 저장되어 있는 IP(예를 들어, 제 1 메모리(1200))와 연결된 네트워크 인터페이스 유닛의 ID가 기재된다. 소스 ID 필드에는 출발지 네트워크 인터페이스의 ID가 기재된다. Target ID_To 필드에는 데이터가 전송될 IP(예를 들어, 제 2 메모리(1300))와 연결된 네트워크 인터페이스 유닛의 ID가 기재된다. Target Address_From 필드에는 전송될 데이터가 저장된 IP 내에서 데이터가 저장되어 있는 주소가 기재된다. Target Address_To 필드에는 데이터가 전송될 IP 내에서 데이터가 기입될 주소가 기재된다. 페이로드 필드에는 읽기 데이터 또는 쓰기 데이터가 기재된다. 4, the ID of the network interface unit connected to the IP (for example, the first memory 1200) in which the data to be transferred is stored is described in the Target ID_From field. The source ID field describes the ID of the source network interface. In the Target ID_To field, the ID of the network interface unit connected to the IP (for example, the second memory 1300) to which data is to be transmitted is described. In the Target Address_From field, the address where data is stored in the IP where the data to be transmitted is stored is described. The Target Address_To field describes the address at which data is to be written in the IP to which data is to be transmitted. The payload field describes the read data or the write data.

즉, 도 4 및 도 5의 실시 예에서, Target ID_From 필드 및 Target Address_From 필드에는 제 1 메모리(1200)에 대한 정보가 기재될 것이다. 소스 ID 필드에는 프로세서(1100)에 대한 정보가 기재될 것이다. Target ID_To 필드 및 Target Address_To 필드에는 제 2 메모리(1300)에 대한 정보가 기재될 것이다.That is, in the embodiment of FIGS. 4 and 5, information about the first memory 1200 will be described in the Target ID_From field and the Target Address_From field. In the source ID field, information about the processor 1100 will be described. In the Target ID_To field and the Target Address_To field, information about the second memory 1300 will be described.

도 5를 참조하면, 전송 커맨드 패킷의 예시적인 실시 예가 도시되었다. 커맨드 필드에 기재된 전송 커맨드를 참조하여, 도 5의 패킷은 전송 커맨드의 패킷인 것을 알 수 있다. 패킷은 소스 ID에 기재된 제 1 네트워크 인터페이스 유닛(1410)으로부터 제공된다. 즉, 전송 커맨드는 제 1 네트워크 인터페이스 유닛(1410)과 연결된 프로세서(1100)로부터 제공되었다는 것을 알 수 있다. 또한, 패킷은 Target ID_From 필드에 기재된 제 2 네트워크 인터페이스 유닛(1420)으로부터 Target ID_To 필드에 기재된 제 3 네트워크 인터페이스 유닛(1430)으로 데이터를 전송하도록 전송 커맨드를 정의한다. 즉, 패킷에 포함된 전송 커맨드에 의해, 제 2 네트워크 인터페이스 유닛(1420)과 연결된 제 1 메모리(1200)에서 제 3 네트워크 인터페이스 유닛(1430)과 연결된 제 2 메모리(1300)로 데이터가 전송된다. Referring to Fig. 5, an exemplary embodiment of a transmission command packet is shown. By referring to the transmission command written in the command field, it can be seen that the packet of Fig. 5 is a packet of the transmission command. The packet is provided from the first network interface unit 1410 described in the source ID. That is, it can be seen that the transfer command is provided from the processor 1100 connected to the first network interface unit 1410. In addition, the packet defines a transfer command to transfer data from the second network interface unit 1420 described in the Target ID_From field to the third network interface unit 1430 described in the Target ID_To field. That is, data is transferred from the first memory 1200 connected to the second network interface unit 1420 to the second memory 1300 connected to the third network interface unit 1430 by the transfer command included in the packet.

또한, 도 5의 패킷에 기재된 정보를 참조하면, 데이터는 Target Address_From 필드에 기재된 제 1 메모리(1200)의 주소 '0x00001000'로부터 독출된다. 예를 들어, 제 1 메모리(1200)의 주소 '0x00001000'부터 순서대로 32 개의 데이터가 독출될 수 있다. 독출된 데이터는 Target Address_To 필드에 기재된 제 2 메모리(1300)의 주소 '0x0000F000'에 기입된다. 제 2 네트워크 인터페이스 유닛(1420)은 제공된 전송 커맨드의 패킷을 해석하여 도 6 및 도 7에 도시된 쓰기 커맨드의 패킷을 생성한다. 상술한 필드들에 기재되는 정보들은 도 6 내지 도 9에도 동일하게 적용될 수 있다. 5, the data is read from the address '0x00001000' of the first memory 1200 described in the Target Address_From field. For example, 32 pieces of data can be read out in order from the address '0x00001000' of the first memory 1200. The read data is written to the address '0x0000F000' of the second memory 1300 written in the Target Address_To field. The second network interface unit 1420 interprets the packet of the transmission command provided and generates a packet of the writing command shown in Figs. 6 and 7. The information described in the above-mentioned fields may be similarly applied to Figs.

도 6 및 도 7은 도 3에 도시된 쓰기 커맨드의 패킷 형식 및 실시 예를 보여주는 그림이다. 도 6 및 도 7의 그림은 도 3을 참조하여 설명될 것이다. 도 6을 참조하면, 쓰기 커맨드의 패킷은 커맨드 필드, Target ID_To 필드, 소스 ID 필드, Target Address_To 필드, 그리고 쓰기 데이터 필드를 포함할 수 있다. 커맨드 필드, Target ID_To 필드, 소스 ID 필드, 그리고 Target Address_To 필드는 도 4 및 도 5에서 설명된 바와 같다.6 and 7 are diagrams showing a packet format and an embodiment of the write command shown in FIG. 6 and 7 will be described with reference to FIG. Referring to FIG. 6, the packet of the write command may include a command field, a Target ID_To field, a source ID field, a Target Address_To field, and a write data field. The command field, the Target ID_To field, the source ID field, and the Target Address_To field are as described in FIGS.

쓰기 데이터 필드에는 제 1 메모리(1200)의 주소 '0x00001000'에서 독출된 데이터가 기재된다. 도 1에서 상술한 바와 같이, 제 1 메모리(1200)의 버스트 랭스는 1이고, 제 1 메모리(1200)는 하나의 데이터 패드를 포함한다고 가정한다. 도 4 및 도 5의 실시 예에서, 쓰기 데이터 필드에는 제 1 메모리(1200)의 주소 '0x00001000'에서 독출된 1 개의 데이터가 기재될 수 있다. 32 개의 데이터를 모두 제 2 메모리(1300)에 제공하기 위해, 제 1 메모리(1200)는 32 개의 쓰기 커맨드의 패킷을 생성하여 제 2 메모리(1300)에 제공한다. 32 개의 쓰기 커맨드의 패킷 각각은 주소 '0x00001000'부터 순서대로 독출된 32 개의 데이터를 하나씩 포함한다.In the write data field, data read from the address '0x00001000' of the first memory 1200 is written. 1, it is assumed that the burst length of the first memory 1200 is 1, and that the first memory 1200 includes one data pad. In the embodiment of FIGS. 4 and 5, one data read from the address '0x00001000' of the first memory 1200 may be written in the write data field. In order to provide all 32 data to the second memory 1300, the first memory 1200 generates 32 packets of the write command and provides it to the second memory 1300. Each of the 32 write command packets includes 32 data read out sequentially from the address '0x00001000'.

도 7을 참조하면, 쓰기 커맨드 패킷의 예시적인 실시 예가 도시되었다. 커맨드 필드에 기재된 쓰기 커맨드를 참조하면, 도 7의 패킷이 쓰기 커맨드의 패킷인 것을 알 수 있다. 소스 ID 필드에 제 1 네트워크 인터페이스 유닛(1410)의 ID가 기재되어 있다. 소스 ID 필드의 정보는 도 8 및 도 9에서 설명될 쓰기 완료 신호의 패킷의 목적지를 설정하기 위해 사용될 수 있다.Referring to FIG. 7, an exemplary embodiment of a write command packet is shown. By referring to the write command written in the command field, it can be seen that the packet of Fig. 7 is a packet of the write command. The ID of the first network interface unit 1410 is described in the source ID field. The information in the source ID field can be used to set the destination of the packet of the write completion signal, which will be described in Figs.

패킷의 최종 목적지는 Target ID_To 필드에 기재된 제 3 네트워크 인터페이스 유닛(1430)이다. 도 7의 패킷에 기재된 정보를 참조하면, 쓰기 데이터 필드에 포함된 데이터는 Target Address_To 필드에 기재된 제 2 메모리(1300)의 주소 '0x0000F000'에 차례로 기입된다. 제 3 네트워크 인터페이스 유닛(1430)이 제 2 메모리(1300)로 32 개의 데이터를 모두 전송한 이후, 제 3 네트워크 인터페이스 유닛(1430)은 도 8 및 도 9에 도시된 쓰기 완료 신호의 패킷을 생성한다. The final destination of the packet is the third network interface unit 1430 described in the Target ID_To field. Referring to the information described in the packet of FIG. 7, the data included in the write data field is sequentially written to the address '0x0000F000' of the second memory 1300 described in the Target Address_To field. After the third network interface unit 1430 transmits all the 32 data to the second memory 1300, the third network interface unit 1430 generates the packet of the write completion signal shown in FIGS. 8 and 9 .

도 8 및 도 9는 도 3에 도시된 쓰기 완료 신호의 패킷 형식 및 실시 예를 보여주는 그림이다. 도 8을 참조하면, 쓰기 완료 신호의 패킷은 커맨드 필드, Target ID_To 필드, 그리고 소스 ID 필드를 포함할 수 있다. 커맨드 필드, Target ID_To 필드, 그리고 소스 ID 필드는 도 4 및 도 5에서 설명된 바와 같다. FIG. 8 and FIG. 9 are diagrams showing the packet format and the embodiment of the write completion signal shown in FIG. Referring to FIG. 8, the packet of the write completion signal may include a command field, a Target ID_To field, and a source ID field. The command field, Target ID_To field, and Source ID field are as described in FIGS.

도 9를 참조하면, 쓰기 완료 신호의 패킷의 예시적인 실시 예가 도시되었다. 커맨드 필드에 기재된 쓰기 완료 정보를 참조하면, 도 9의 패킷이 쓰기 완료 신호의 패킷인 것을 알 수 있다. 즉, 도 9의 쓰기 완료 신호의 패킷은 Target ID_To 필드에 기재된 제 3 네트워크 인터페이스 유닛(1430)으로의 데이터 전송이 완료되었다는 정보를 포함한다. 패킷의 최종 목적지는 소스 ID 필드에 기재된 제 1 네트워크 인터페이스 유닛(1410)이다. 소스 ID 필드를 참조하여, 쓰기 완료 신호의 패킷이 제 1 네트워크 인터페이스 유닛(1410)으로 전송된다. 이에 따라, 프로세서(1100)는 제 1 네트워크 인터페이스 유닛(1410)을 통해 제 1 및 제 2 메모리(1200, 1300)로 제공했던 전송 커맨드가 수행되었음을 피드백 받을 수 있다. Referring to FIG. 9, an exemplary embodiment of a packet of a write completion signal is shown. Referring to the write completion information written in the command field, it can be seen that the packet of Fig. 9 is a packet of a write completion signal. That is, the packet of the write completion signal of FIG. 9 includes information that the data transmission to the third network interface unit 1430 described in the Target ID_To field is completed. The final destination of the packet is the first network interface unit 1410 described in the source ID field. Referring to the source ID field, a packet of the write completion signal is transmitted to the first network interface unit 1410. Accordingly, the processor 1100 can receive feedback that the transfer command that was provided to the first and second memories 1200 and 1300 through the first network interface unit 1410 has been performed.

도 10은 도 3에 도시된 제 2 네트워크 인터페이스 유닛의 동작을 설명하기 위한 순서도이다. 제 2 네트워크 인터페이스 유닛(1420)은 제 1 네트워크 인터페이스 유닛(1410)으로부터 전송 커맨드의 패킷을 제공받는다(S110). 전송 커맨드의 패킷에 포함된 정보는 제 1 메모리(1200)로 제공된다. 제 1 메모리(1200)는 정보에 포함된 주소로부터 데이터를 독출한다. 제 2 네트워크 인터페이스 유닛(1420)은 제 1 메모리(1200)로부터 독출된 데이터를 제공받는다(S120). 제 2 네트워크 인터페이스 유닛(1420)은 전송 커맨드의 패킷을 해석하고, 해석된 패킷과 독출된 데이터를 기초로 쓰기 커맨드의 패킷을 생성한다. 10 is a flowchart for explaining the operation of the second network interface unit shown in FIG. The second network interface unit 1420 receives the packet of the transmission command from the first network interface unit 1410 (S110). The information contained in the packet of the transfer command is provided to the first memory 1200. The first memory 1200 reads data from the address included in the information. The second network interface unit 1420 receives data read from the first memory 1200 (S120). The second network interface unit 1420 interprets the packet of the transmission command and generates a packet of the writing command based on the interpreted packet and the read data.

제 2 네트워크 인터페이스 유닛(1420)은 쓰기 커맨드의 패킷을 제 3 네트워크 인터페이스 유닛(1430)으로 전송한다(S130). 쓰기 커맨드의 패킷을 통해 전송된 데이터의 수를 카운트하기 위해, 제 2 네트워크 인터페이스 유닛(1420)은 i의 카운트를 하나 증가시킨다(S140). 여기서, i의 초기 값은 1이라 가정한다. The second network interface unit 1420 transmits the packet of the write command to the third network interface unit 1430 (S130). In order to count the number of data transmitted through the packet of the write command, the second network interface unit 1420 increments the count of i by one (S140). Here, it is assumed that the initial value of i is 1.

제 2 네트워크 인터페이스 유닛(1420)은 i가 n보다 큰지 여부를 확인한다(S150). n은 전송될 데이터의 수를 의미한다. 도 4 내지 도 9의 예에서, 전송되는 데이터의 수가 32 개이므로, n은 32가 된다. i 및 n에 대한 가정은 도 11에도 동일하게 적용된다. i가 n보다 작거나 같은 경우(아니오 방향), 제 2 네트워크 인터페이스 유닛(1420)은 S120 단계를 다시 수행한다. i가 n보다 큰 경우(예 방향), 데이터가 모두 전송되었기 때문에, 제 2 네트워크 인터페이스 유닛(1420)은 도 10의 동작을 완료한다. The second network interface unit 1420 confirms whether i is greater than n (S150). n means the number of data to be transmitted. In the example shown in Figs. 4 to 9, the number of data to be transmitted is 32, so that n becomes 32. The assumptions for i and n apply equally to Fig. If i is less than or equal to n (NO direction), the second network interface unit 1420 performs step S120 again. When i is larger than n (Yes direction), the second network interface unit 1420 completes the operation of Fig. 10 because all the data has been transferred.

도 11은 도 3에 도시된 제 3 네트워크 인터페이스 유닛의 동작을 설명하기 위한 순서도이다. 제 3 네트워크 인터페이스 유닛(1430)은 제 2 네트워크 인터페이스 유닛(1420)으로부터 쓰기 커맨드의 패킷을 수신한다(S210). 제 3 네트워크 인터페이스 유닛(1430)은 수신한 커맨드의 패킷에 포함된 데이터, 쓰기 커맨드, 및 주소를 제 2 메모리(1300)에 전송한다(S220). 제 2 메모리(1300)는 전송된 데이터를 제공된 주소와 대응하는 메모리 셀에 기입한다.11 is a flowchart for explaining the operation of the third network interface unit shown in FIG. The third network interface unit 1430 receives the packet of the write command from the second network interface unit 1420 (S210). The third network interface unit 1430 transmits the data, the write command, and the address included in the packet of the received command to the second memory 1300 (S220). The second memory 1300 writes the transferred data in the memory cell corresponding to the provided address.

수신된 데이터의 수를 카운트하기 위해, 제 3 네트워크 인터페이스 유닛(1430)은 i의 카운트를 하나 증가시킨다(S230). 제 3 네트워크 인터페이스 유닛(1430)은 i가 n보다 큰지 여부를 확인한다(S240). i가 n보다 작거나 같은 경우(아니오 방향), 제 3 네트워크 인터페이스 유닛(1430)은 S220 단계를 다시 수행한다. i가 n보다 큰 경우(예 방향), 제 3 네트워크 인터페이스 유닛(1430)은 S250 단계를 수행한다. To count the number of received data, the third network interface unit 1430 increments the count of i by one (S230). The third network interface unit 1430 checks whether i is greater than n (S240). If i is less than or equal to n (No direction), the third network interface unit 1430 performs step S220 again. If i is greater than n (Yes direction), the third network interface unit 1430 performs step S250.

i가 n보다 큰 경우, 제 1 메모리(1200)로부터 제 2 메모리(1300)에 n 개의 데이터가 모두 전송되었으므로, 제 3 네트워크 인터페이스 유닛(1430)은 쓰기 완료 신호의 패킷을 생성한다. 제 3 네트워크 인터페이스 유닛(1430)은 쓰기 완료 신호의 패킷을 제 1 네트워크 인터페이스 유닛(1410)으로 전송한다(S250). 도 10 및 도 11의 실시 예에 의해, 도 3의 전자 장치(1000)는 복수의 데이터를 제 1 메모리(1200)로부터 제 2 메모리(1300)로 전송한다.When i is larger than n, since n pieces of data have all been transferred from the first memory 1200 to the second memory 1300, the third network interface unit 1430 generates a packet of the write completion signal. The third network interface unit 1430 transmits the packet of the write completion signal to the first network interface unit 1410 (S250). According to the embodiment of Figs. 10 and 11, the electronic device 1000 of Fig. 3 transfers a plurality of data from the first memory 1200 to the second memory 1300. Fig.

상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The above description is specific embodiments for carrying out the present invention. The present invention will also include embodiments that are not only described in the above-described embodiments, but also can be simply modified or changed easily. In addition, the present invention will also include techniques that can be easily modified and implemented using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by the claims equivalent to the claims of the present invention as well as the following claims.

100, 1000 : 전자 장치 110, 1100 : 프로세서
120, 1200 : 제 1 메모리 130, 1300 : 제 2 메모리
140 : DMA 유닛 141 : 버퍼
150, 1400 : 온칩 네트워크 151, 1410 : NIU1
152, 1420 : NIU2 153, 1430 : NIU3
154 : NIU4
100, 1000: electronic device 110, 1100: processor
120, 1200: first memory 130, 1300: second memory
140: DMA unit 141: buffer
150, 1400: on-chip network 151, 1410: NIU1
152, 1420: NIU2 153, 1430: NIU3
154: NIU4

Claims (1)

전자 장치의 동작 방법에 있어,
상기 전자 장치는 프로세서와 연결된 온칩 네트워크, 상기 온칩 네트워크와 연결된 제 1 메모리, 그리고 상기 온칩 네트워크와 연결된 제 2 메모리를 포함하고,
상기 전자 장치의 동작 방법은:
상기 프로세서에서, 데이터 전송 커맨드를 상기 온칩 네트워크를 통해 상기 제 1 메모리 장치에 제공하는 단계;
상기 데이터 전송 커맨드에 응답하여, 상기 제 1 메모리에서 독출된 데이터를 상기 온칩 네트워크를 통해 상기 제 2 메모리에 제공하는 단계;
상기 제 2 메모리에서, 상기 제공된 데이터를 기입하는 단계; 그리고
상기 제 2 메모리에서, 데이터 기입 완료 신호를 상기 온칩 네트워크를 통해 상기 프로세서에 제공하는 단계를 포함하는 동작 방법.
In an operating method of an electronic device,
The electronic device includes an on-chip network coupled to the processor, a first memory coupled to the on-chip network, and a second memory coupled to the on-
The method of operation of the electronic device comprises:
Providing, in the processor, a data transfer command to the first memory device via the on-chip network;
Providing data read from the first memory to the second memory via the on-chip network in response to the data transfer command;
In the second memory, writing the provided data; And
And in the second memory, providing a data write completion signal to the processor over the on-chip network.
KR1020170033370A 2017-03-16 2017-03-16 Operation method for electronic device comprising on-chip network Withdrawn KR20180105978A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170033370A KR20180105978A (en) 2017-03-16 2017-03-16 Operation method for electronic device comprising on-chip network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170033370A KR20180105978A (en) 2017-03-16 2017-03-16 Operation method for electronic device comprising on-chip network

Publications (1)

Publication Number Publication Date
KR20180105978A true KR20180105978A (en) 2018-10-01

Family

ID=63876927

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170033370A Withdrawn KR20180105978A (en) 2017-03-16 2017-03-16 Operation method for electronic device comprising on-chip network

Country Status (1)

Country Link
KR (1) KR20180105978A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210006127A (en) * 2019-07-08 2021-01-18 숭실대학교산학협력단 Multiprocessor interrupt signal processing device
KR20210006128A (en) * 2019-07-08 2021-01-18 숭실대학교산학협력단 Symmetrical interface-based interrupt signal processing device and method
KR102270261B1 (en) * 2020-07-30 2021-06-25 김영일 MMI(Memory Medium Interconnect) interface and computing system based on the interface
CN113297130A (en) * 2021-06-10 2021-08-24 中国科学技术大学 Dynamic random access memory system and data processing method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210006127A (en) * 2019-07-08 2021-01-18 숭실대학교산학협력단 Multiprocessor interrupt signal processing device
KR20210006128A (en) * 2019-07-08 2021-01-18 숭실대학교산학협력단 Symmetrical interface-based interrupt signal processing device and method
KR102270261B1 (en) * 2020-07-30 2021-06-25 김영일 MMI(Memory Medium Interconnect) interface and computing system based on the interface
WO2022025318A1 (en) * 2020-07-30 2022-02-03 김영일 Mmi interface device and computing system based thereon
CN113297130A (en) * 2021-06-10 2021-08-24 中国科学技术大学 Dynamic random access memory system and data processing method
CN113297130B (en) * 2021-06-10 2024-06-11 中国科学技术大学 Dynamic random access memory system and data processing method

Similar Documents

Publication Publication Date Title
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
KR101885452B1 (en) Interconnect systems and methods using hybrid memory cube links
US9992135B2 (en) Apparatus and method for fusion of compute and switching functions of exascale system into a single component by using configurable network-on-chip fabric with distributed dual mode input-output ports and programmable network interfaces
CN112631959B (en) High bandwidth link layer for coherence messages
CN107480077A (en) For performing the memory devices and its operating method of inter-process
US10805392B2 (en) Distributed gather/scatter operations across a network of memory nodes
CN105874758B (en) Memory pool access method, interchanger and multicomputer system
KR20180105978A (en) Operation method for electronic device comprising on-chip network
CN111261204B (en) Storage System
EP4199481A1 (en) Method and apparatus to perform operations on multiple segments of a data packet in a network interface controller
US11797311B2 (en) Asynchronous pipeline merging using long vector arbitration
CN113168388A (en) Memory request chaining on the bus
US11698791B2 (en) On-demand programmable atomic kernel loading
KR102721940B1 (en) Serial communication method and system for memory access
US20240320167A1 (en) Combining read requests having spatial locality
US11928039B1 (en) Data-transfer test mode
KR102572143B1 (en) Method of sharing memory resource for memory cloud and memory resource sharing system using the same
US20240079036A1 (en) Standalone Mode
US20240070093A1 (en) Asymmetric Read-Write Sequence for Interconnected Dies
CN118689803A (en) Combining read requests with spatial locality
CN116795742A (en) Storage device, information storage method and system
JP2023543466A (en) circuits, chips, and electronic devices

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170316

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination