KR20210134965A - 데이터 전송 장치, 방법 및 판독 가능 저장매체 - Google Patents
데이터 전송 장치, 방법 및 판독 가능 저장매체 Download PDFInfo
- Publication number
- KR20210134965A KR20210134965A KR1020217032016A KR20217032016A KR20210134965A KR 20210134965 A KR20210134965 A KR 20210134965A KR 1020217032016 A KR1020217032016 A KR 1020217032016A KR 20217032016 A KR20217032016 A KR 20217032016A KR 20210134965 A KR20210134965 A KR 20210134965A
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- data
- information
- intra
- frame
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 379
- 238000000034 method Methods 0.000 title claims abstract description 116
- 239000000872 buffer Substances 0.000 claims abstract description 333
- 238000012546 transfer Methods 0.000 claims abstract description 147
- 238000001514 detection method Methods 0.000 claims description 71
- 238000013507 mapping Methods 0.000 claims description 50
- 238000004891 communication Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009191 jumping Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012285 ultrasound imaging Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
데이터 전송 장치, 방법 및 판독 가능 저장매체를 제공하며, 상기 장치는 프론트엔드 프로세서(101), 전송 컨트롤러(102) 및 백엔드 프로세서(103)를 포함한다. 프론트엔드 프로세서(101)의 DMA 컨트롤러(1011)는 전송 컨트롤러(102), 메모리 컨트롤러(1013), 각각의 전송 버퍼(1014, 1015) 및 전송 스케줄러(1012)와 각각 연결되고, 전송 컨트롤러(102)와 전송 스케줄러(1012)는 모두 각각의 전송 버퍼(1014, 1015)와 각각 연결되고; DMA 컨트롤러(1011)는 백엔드 프로세서(103)로부터 발송되는 데이터 전송 요청을 수신하고, 메모리 컨트롤러(1013)로부터 판독된 데이터를 수신하며, 이를 전송 버퍼(1014, 1015)로 발송하고; 메모리 컨트롤러(1013)는 데이터 판독 명령에 따라 메모리가 데이터를 판독하도록 제어하고, 판독한 데이터를 DMA 컨트롤러(1011)로 발송하고; 전송 스케줄러(1012)는 복수의 전송 버퍼(1014, 1015)가 DMA 컨트롤러(1011)로부터 발송된 데이터를 기록하도록 제어하고, 복수의 전송 버퍼(1014, 1015)가 데이터를 판독하여 전송 컨트롤러(102)를 거쳐 백엔드 프로세서(103)로 전송하도록 제어한다. 빅데이터의 신속한 전송을 수행함으로써, 대량의 자원이 소모되는 것을 방지한다.
Description
본 발명의 실시예는 빅데이터 처리 기술분야에 관한 것으로, 특히 데이터 전송 장치, 방법 및 판독 가능 저장매체에 관한 것이다.
인터넷의 발전 및 과학기술의 진보에 따라, 다양한 과학기술 분야에서 데이터가 폭발적으로 증가하고 있으며, 대량의 데이터를 형성하였다. 예를 들어 초고속 초음파 이미징 기술분야에서, 초고속 초음파 이미징 시스템에서는 대량의 데이터가 생성되었으며, 이러한 데이터는 시스템의 프론트엔드 메모리에 캐싱되므로, 이후의 처리가 수행되도록 될수록 신속하게 백엔드 메모리 또는 외부 메모리로 전송되어야 한다. 따라서 빅데이터를 전송하여야 한다.
종래기술에서 빅데이터에 대한 전송은 데이터 처리 시스템의 백엔드 프로세서의 부하를 증가시키고, 대량의 자원을 소모할 뿐만 아니라, 전송 매커니즘 상의 문제로 인해 빅데이터의 전송 과정이 느려, 빅데이터의 신속한 전송을 구현할 수 없다.
본 발명의 실시예는 빅데이터의 전송 시 데이터 처리 시스템의 백엔드 프로세서의 부하를 증가시키고, 대량의 자원을 소모하며, 전송 매커니즘 상의 문제로 인해 빅데이터의 전송 과정이 느린 종래기술의 기술문제를 해결하는, 데이터 전송 장치, 방법 및 판독 가능 저장매체를 제공한다.
제1 측면에 따르면, 본 발명의 실시예는 데이터 전송 장치를 제공하며, 프론트엔드 프로세서, 전송 컨트롤러 및 백엔드 프로세서를 포함하고;
상기 프론트엔드 프로세서는 상기 전송 컨트롤러를 통해 상기 백엔드 프로세서와 연결되고;
상기 프론트엔드 프로세서는 DMA 컨트롤러, 전송 스케줄러, 메모리 컨트롤러 및 복수의 전송 버퍼를 포함하고, 상기 DMA 컨트롤러는 상기 전송 컨트롤러, 상기 메모리 컨트롤러, 각각의 상기 전송 버퍼 및 상기 전송 스케줄러와 각각 연결되고, 상기 전송 컨트롤러와 상기 전송 스케줄러는 모두 각각의 상기 전송 버퍼와 각각 연결되고;
상기 DMA 컨트롤러는 상기 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 상기 데이터 전송 요청에 따라 상기 메모리 컨트롤러로 데이터 판독 명령을 발송하고, 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하고;
상기 메모리 컨트롤러는 상기 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 상기 DMA 컨트롤러로 발송하도록 제어하고;
상기 전송 스케줄러는 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하여 상기 전송 컨트롤러를 상기 백엔드 프로세서로 전송하도록 제어한다.
또한 상기 장치에서, 상기 DMA 컨트롤러는 구체적으로 상기 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어한다.
또한 상기 장치에서, 상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 카운터 및 세그먼트 내 어드레싱 장치를 포함하고;
상기 매핑 유닛은 상기 세그먼트 카운터 및 상기 세그먼트 내 어드레싱 장치와 각각 연결되고, 상기 세그먼트 카운터는 상기 세그먼트 내 어드레싱 장치와 연결되고;
상기 매핑 유닛은 상기 백엔드 프로세서로부터 발송되는 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단일 프레임 데이터 전송 요청을 수신하고, 상기 프레임 시작 주소와 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑하고;
상기 세그먼트 내 어드레싱 장치는 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면, 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행한다.
또한 상기 장치에서, 상기 세그먼트 내 어드레싱 장치는 구체적으로, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 내 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
또한 상기 장치에서, 상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 내 어드레싱 장치, 세그먼트 카운터 및 프레임 카운터를 포함하고;
상기 매핑 유닛은 상기 프레임 카운터, 상기 세그먼트 카운터, 상기 세그먼트 내 어드레싱 장치와 각각 연결되고, 상기 세그먼트 카운터는 상기 세그먼트 내 어드레싱 장치, 상기 프레임 카운터와 각각 연결되고;
상기 매핑 유닛은 상기 백엔드 프로세서로부터 발송되는, 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 멀티 프레임 데이터 전송 요청을 수신하고, 상기 프레임 수량, 상기 프레임 시작 주소 및 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑하고;
상기 세그먼트 내 어드레싱 장치는 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고, 상기 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행하고;
상기 프레임 카운터는 프레임 카운트 업데이트 정보가 수신되면, 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행한다.
또한 상기 장치에서, 상기 세그먼트 내 어드레싱 장치는 구체적으로 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 구체적으로 상기 세그먼트 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 0이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고;
상기 프레임 카운터는 구체적으로 프레임 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하고, 상기 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
또한 상기 장치에서, 상기 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함하고;
상기 입구 스케줄러는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하고;
상기 출구 스케줄러는 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어한다.
또한 상기 장치에서, 상기 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함하고;
상기 입구 스케줄러는 구체적으로 상기 입구 스케줄링 상태가 아이들 상태이고 상기 기록 토큰 정보가 어느 기록 토큰 정보이면, 상기 아이들 상태를 상기 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어한다.
또한 상기 장치에서, 상기 입구 스케줄러는 또한 현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트한다.
또한 상기 장치에서, 상기 입구 스케줄러는 구체적으로 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트한다.
또한 상기 장치에서, 상기 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함하고;
상기 출구 스케줄러는 구체적으로 상기 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이고 상기 판독 토큰 정보가 어느 판독 토큰 정보이면, 상기 전송 컨트롤러는 검출 후 상기 전송 컨트롤러 검출 상태를 상기 전송 버퍼 검출 상태로 점핑하도록 제어하고, 상기 전송 버퍼는 검출 후 상기 전송 버퍼 검출 상태를 상기 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 판독하도록 제어한다.
또한 상기 장치에서, 상기 출구 스케줄러는 또한 현재 전송 컨트롤러가 판독한 데이터가 제2 기설정 길이값에 도달하면, 상기 현재 전송 버퍼 판독 상태를 상기 인터페이스 버퍼 검출 상태로 업데이트하고, 상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트한다.
또한 상기 장치에서, 상기 출구 스케줄러는 구체적으로, 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트한다.
또한 상기 장치에서, 상기 전송 컨트롤러는 멀티 데이터 버퍼 영역, 전송 프로세서 및 직렬 통신 엔진을 포함하고;
상기 전송 프로세서는 상기 멀티 데이터 버퍼 영역, 상기 직렬 통신 엔진과 각각 연결되고;
상기 멀티 데이터 버퍼 영역은 상기 데이터에 대해 캐싱하고;
상기 전송 프로세서는 상기 멀티 데이터 버퍼 영역 중의 데이터를 상기 직렬 통신 엔진으로 발송하고;
상기 직렬 통신 엔진은 상기 전송 프로세서로부터 발송되는 데이터를 수신하고, 상기 데이터를 백엔드 프로세서로 발송한다.
또한 상기 장치에서, 상기 백엔드 프로세서는 멀티 코어 CPU를 포함하고;
상기 멀티 코어 CPU는 데이터를 병행 방식에 따라 백엔드 메모리로 전송한다.
제2 측면에 따르면, 본 발명의 실시예는 데이터 전송 방법을 제공하며,
DMA 컨트롤러가 상기 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 상기 데이터 전송 요청에 따라 상기 메모리 컨트롤러로 데이터 판독 명령을 발송하는 단계;
상기 메모리 컨트롤러가 상기 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 상기 DMA 컨트롤러로 발송하도록 제어하는 단계;
상기 DMA 컨트롤러가 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하는 단계;
상기 전송 스케줄러가 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하고 상기 전송 컨트롤러를 거쳐 상기 백엔드 프로세서로 전송하도록 제어하는 하는 단계를 포함한다.
또한 상기 방법에서, 상기 DMA 컨트롤러가 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하는 단계는 구체적으로,
상기 DMA 컨트롤러가 상기 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어는 단계를 포함한다.
또한 상기 방법에서, 상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 카운터 및 세그먼트 내 어드레싱 장치를 포함하고;
DMA 컨트롤러가 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하는 상기 단계는 구체적으로,
상기 매핑 유닛이 상기 백엔드 프로세서로부터 발송되는 단일 프레임 데이터 전송 요청을 수신하고, 상기 단일 프레임 데이터 전송 요청은 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단계를 포함하고,
대응되게, 상기 DMA 컨트롤러가 상기 데이터가 단일 프레임 방식에 따라 전송되도록 제어하는 단계는 구체적으로,
상기 매핑 유닛이 상기 프레임 시작 주소와 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑하는 단계;
상기 세그먼트 내 어드레싱 장치가 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행하는 단계를 포함한다.
또한 상기 방법에서, 상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행하는 상기 단계는 구체적으로,
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
또한 상기 방법에서, 상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 내 어드레싱 장치, 세그먼트 카운터 및 프레임 카운터를 포함하고;
상기 DMA 컨트롤러가 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하는 단계는 구체적으로,
상기 매핑 유닛이 상기 백엔드 프로세서로부터 발송되는 멀티 프레임 데이터 전송 요청을 수신하되, 상기 멀티 프레임 데이터 전송 요청은 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단계를 포함하고,
상기 DMA 컨트롤러가 상기 데이터가 멀티 프레임 방식에 따라 전송되도록 제어하는 단계는 구체적으로,
상기 매핑 유닛이 상기 프레임 수량, 상기 프레임 시작 주소 및 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑하는 단계;
상기 세그먼트 내 어드레싱 장치가 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고, 상기 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행하는 단계;
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행하는 단계를 포함한다.
또한 상기 방법에서, 상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하는 상기 단계는 구체적으로,
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 0이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고;
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행하는 상기 단계는,
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
또한 상기 방법에서, 상기 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함하고;
상기 전송 스케줄러가 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하도록 제어하는 단계는 구체적으로,
상기 입구 스케줄러가 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하는 단계;
상기 출구 스케줄러가 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 단계를 포함한다.
또한 상기 방법에서, 상기 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함하고;
상기 입구 스케줄러가 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하는 단계는 구체적으로,
상기 입구 스케줄링 상태가 아이들 상태이고 상기 기록 토큰 정보가 어느 기록 토큰 정보이면, 상기 아이들 상태를 상기 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어하는 단계를 포함한다.
또한 상기 방법에서, 해당 전송 버퍼로 데이터를 기록하도록 제어하는 상기 단계 후에,
현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계를 더 포함한다.
또한 상기 방법에서, 상기 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계는,
상기 입구 스케줄러가 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하는 단계를 포함한다.
또한 상기 방법에서, 상기 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함하고;
상기 출구 스케줄러가 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 단계는 구체적으로,
상기 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이고 상기 판독 토큰 정보가 어느 판독 토큰 정보이면, 상기 전송 컨트롤러가 검출 후 상기 전송 컨트롤러 검출 상태를 상기 전송 버퍼 검출 상태로 점핑하도록 제어하고, 상기 전송 버퍼가 검출 후 상기 전송 버퍼 검출 상태를 상기 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼로부터 데이터를 판독하도록 제어하는 단계를 포함한다.
또한 상기 방법에서, 해당 전송 버퍼로부터 데이터를 판독하도록 제어하는 상기 단계 후에,
현재 전송 컨트롤러가 판독한 데이터가 제2 기설정 길이값에 도달하면, 상기 현재 전송 버퍼 판독 상태를 상기 인터페이스 버퍼 검출 상태로 업데이트하고, 상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 단계를 더 포함한다.
또한 상기 방법에서, 상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 상기 단계는 구체적으로,
상기 출구 스케줄러가 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트하는 단계를 포함한다.
또한 상기 방법에서, 상기 전송 컨트롤러는 멀티 데이터 버퍼 영역, 전송 프로세서 및 직렬 통신 엔진을 포함하고;
상기 방법은,
상기 멀티 데이터 버퍼 영역에서 상기 데이터에 대해 캐싱하는 단계;
상기 전송 프로세서가 상기 멀티 데이터 버퍼 영역 중의 데이터를 상기 직렬 통신 엔진으로 발송하는 단계;
상기 직렬 통신 엔진이 상기 전송 프로세서로부터 발송되는 데이터를 수신하고, 상기 데이터를 백엔드 프로세서로 발송하는 단계를 더 포함한다.
또한 상기 방법에서, 상기 백엔드 프로세서는 멀티 코어 CPU를 포함하고;
상기 방법은,
상기 멀티 코어 CPU가 병행 방식으로 데이터를 백엔드 메모리로 발송하는 단계를 더 포함한다.
제3 측면에 따르면, 본 발명의 실시예는 프로세서에 의해 실행되어 제2 측면 중 어느 하나에 따른 방법을 구현하는 컴퓨터 프로그램이 저장되어 있는 컴퓨터 판독 가능 저장매체를 제공한다.
본 발명의 실시예는 데이터 전송 장치, 방법 및 판독 가능 저장매체를 제공하며, 상기 장치는 프론트엔드 프로세서, 전송 컨트롤러 및 백엔드 프로세서를 포함한다. 프론트엔드 프로세서는 전송 컨트롤러를 통해 백엔드 프로세서와 연결된다. 상기 프론트엔드 프로세서는 DMA 컨트롤러, 전송 스케줄러, 메모리 컨트롤러, 및 복수의 전송 버퍼를 포함하고, 상기 DMA 컨트롤러는 상기 전송 컨트롤러, 상기 메모리 컨트롤러, 각각의 상기 전송 버퍼 및 상기 전송 스케줄러와 각각 연결되고, 상기 전송 컨트롤러와 상기 전송 스케줄러는 모두 각각의 상기 전송 버퍼와 각각 연결되고; 상기 DMA 컨트롤러는 상기 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 상기 데이터 전송 요청에 따라 상기 메모리 컨트롤러로 데이터 판독 명령을 발송하고, 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하고; 상기 메모리 컨트롤러는 상기 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 상기 DMA 컨트롤러로 발송하도록 제어하고; 상기 전송 스케줄러는 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하여 상기 전송 컨트롤러를 거쳐 상기 백엔드 프로세서로 전송하도록 제어한다. 프론트엔드 프로세서에서, 전송되는 데이터에 대해 질서적으로 스케줄링할 수 있으므로, 빅데이터의 신속한 전송을 구현할 수 있고, 백엔드 프로세서가 데이터의 수신 준비를 완료한 후 데이터를 전송함으로써, 백엔드 프로세서의 부하를 증가시키지 않고, 대량의 자원이 소모되는 것을 방지한다.
상술한 발명의 내용 부분에서 기재된 내용은 본 발명의 실시예의 관건적 또는 중요한 특정을 한정하려는 의도가 아니며, 본 발명의 범위를 한정하려는 의도도 아님을 이해하여야 한다. 본 발명의 기타 특징은 아래의 기재를 통해 쉽게 이해할 수 있을 것이다.
본 발명의 실시예 또는 종래기술에 따른 기술적 해결수단을 보다 명확하게 설명하기 위하여, 아래에서는 실시예 또는 종래기술을 설명하기 위해 필요한 도면을 간략하게 소개한다. 아래에서 설명되는 도면은 단지 본 발명의 일부 실시예일 뿐, 본 분야에서 통상의 지식을 가진 자가 진보적인 노력을 들이지 않고도 이러한 도면을 기초로 기타 도면을 얻을 수 있음은 자명하다.
도 1은 본 발명의 실시예 1에서 제공하는 데이터 전송 장치의 구성도이다.
도 2는 본 발명의 실시예 2에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러의 구성도이다.
도 3은 본 발명의 실시예 3에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러의 구성도이다.
도 4는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 구성도이다.
도 5는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 전송 스케줄러의 구성도이다.
도 6은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 입구 스케줄러의 입구 스케줄링 상태의 점핑을 나타내는 도면이다.
도 7은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 출구 스케줄러의 출구 스케줄링 상태의 점핑을 나타내는 도면이다.
도 8은 본 발명의 실시예 5에서 제공하는 데이터 전송 장치의 전송 컨트롤러의 구성도이다.
도 9는 본 발명의 실시예6에서 제공하는 데이터 전송 방법의 흐름도이다.
도 10은 본 발명의 실시예 7에서 제공하는 데이터 전송 방법의 흐름도이다.
도 11은 본 발명의 실시예 8에서 제공하는 데이터 전송 방법의 흐름도이다.
도 12는 본 발명의 실시예 9에서 제공하는 데이터 전송 방법의 흐름도이다.
도 13은 본 발명의 실시예 10에서 제공하는 데이터 전송 방법의 흐름도이다.
도 1은 본 발명의 실시예 1에서 제공하는 데이터 전송 장치의 구성도이다.
도 2는 본 발명의 실시예 2에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러의 구성도이다.
도 3은 본 발명의 실시예 3에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러의 구성도이다.
도 4는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 구성도이다.
도 5는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 전송 스케줄러의 구성도이다.
도 6은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 입구 스케줄러의 입구 스케줄링 상태의 점핑을 나타내는 도면이다.
도 7은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 출구 스케줄러의 출구 스케줄링 상태의 점핑을 나타내는 도면이다.
도 8은 본 발명의 실시예 5에서 제공하는 데이터 전송 장치의 전송 컨트롤러의 구성도이다.
도 9는 본 발명의 실시예6에서 제공하는 데이터 전송 방법의 흐름도이다.
도 10은 본 발명의 실시예 7에서 제공하는 데이터 전송 방법의 흐름도이다.
도 11은 본 발명의 실시예 8에서 제공하는 데이터 전송 방법의 흐름도이다.
도 12는 본 발명의 실시예 9에서 제공하는 데이터 전송 방법의 흐름도이다.
도 13은 본 발명의 실시예 10에서 제공하는 데이터 전송 방법의 흐름도이다.
아래에서는 첨부되는 도면을 참조하여 본 발명의 실시예를 더욱 상세하게 설명한다. 비록 첨부되는 도면에서 본 발명의 일부 실시예를 나타내지만, 본 발명은 다양한 형태를 통해 구현될 수 있다는 것을 이해하여야 하고, 여기에 기재되는 실시예에 한정되는 것으로 해석하여서는 않되며, 반대로 이러한 실시예는 본 발명을 더욱 충분하고 완전하게 설명하기 위해 제공된다. 본 발명의 첨부되는 도면 및 실시예는 예시적인 작용일 뿐, 본 발명의 보호범위를 한정하는 것은 아니다.
본 출원 실시예의 명세서와 청구범위 및 상술한 도면에서 용어 "제1", "제2", "제3", "제4" 등(존재한다면)은 유사한 대상을 구분하기 위한 것으로서, 특정 순서 또는 선후 순서를 기재할 필요는 없다. 여기에 기재되는 본 발명의 실시예가 여기에 도시 또는 기재된 것 이외의 기타 순서로 실시될 수도 있도록, 이렇게 사용되는 데이터는 적합한 경우에 서로 호환될 수 있는 것으로 이해하여야 한다. 한편, 용어 "포함"과 "구비" 및 이들의 임의의 변형은, 비배타적인 포함을 커버하기 위한 것으로서, 예를 들어, 일련의 단계 또는 유닛을 포함하는 과정, 방법, 시스템, 제품 또는 기기는 명확히 나열된 그러한 단계 또는 유닛에 한정될 필요가 없으며, 오히려 명확하게 나열되지 않은 것이거나, 이러한 과정, 방법, 제품 또는 기기의 고유한 기타 단계 또는 유닛을 포함할 수 있다.
도 1은 본 발명의 실시예 1에서 제공하는 데이터 전송 장치의 구성도이다. 도 1에 도시된 바와 같이, 본 실시예에서 제공하는 데이터 전송 장치는, 프론트엔드 프로세서(101), 전송 컨트롤러(102) 및 백엔드 프로세서(103)를 포함한다.
여기서, 프론트엔드 프로세서(101)는 전송 컨트롤러(102)를 통해 백엔드 프로세서(103)와 연결된다.
구체적으로, 프론트엔드 프로세서(101)는 프론트엔드 메모리에 있는 데이터의 전송에 대한 스케줄링을 수행하여, 데이터를 전송 컨트롤러(102)로 발송한다. 전송 컨트롤러(102)는 프론트엔드 프로세서(101)와 백엔드 프로세서(103)의 전송 채널로서 데이터를 백엔드 프로세서(103)로 발송한다. 백엔드 프로세서(103)는 전송된 데이터에 대해 스케줄링한 후 백엔드 메모리 또는 외부 저장 장치로 전송한다
본 실시예에서, 프론트엔드 프로세서(101)는 DMA 컨트롤러(1011), 전송 스케줄러(1012), 메모리 컨트롤러(1013), 및 복수의 전송 버퍼를 포함하고, DMA 컨트롤러(1011)는 전송 컨트롤러(102), 메모리 컨트롤러(1013), 각각의 전송 버퍼 및 전송 스케줄러(1012)와 연결되고, 전송 컨트롤러(102)와 전송 스케줄러(1012)는 모두 각각의 전송 버퍼와 각각 연결된다.
본 실시예에서, DMA 컨트롤러(1011)는 백엔드 프로세서(103)로부터 발송되는 데이터 전송 요청을 수신하고, 데이터 전송 요청에 따라 메모리 컨트롤러(1013)로 데이터 판독 명령을 발송하고, 판독된 데이터를 수신하며, 이를 전송 버퍼로 발송한다. 메모리 컨트롤러(1013)는 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 DMA 컨트롤러(1011)로 발송하도록 제어한다. 전송 스케줄러(1012)는 복수의 전송 버퍼가 DMA 컨트롤러(1011)로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하고 전송 컨트롤러(102)를 거쳐 백엔드 프로세서(103)로 전송하도록 제어한다.
구체적으로, 본 실시예에서, DMA 컨트롤러(1011)는 백엔드 프로세서(103)로부터 발송되는, 전송 정보를 포함하는 데이터 전송 요청을 수신하고, DMA 컨트롤러(1011)는 데이터 전송 요청의 전송 정보를 기초로 메모리 컨트롤러(1013)로 대응되는 데이터 판독 명령을 발송하고, 메모리 컨트롤러(1013)는 데이터 판독 명령에 따라 메모리가 데이터를 판독하도록 제어하고, 여기서, 메모리는 프론트엔드 메모리로부터 데이터를 판독할 수 있다. 또한 판독한 데이터를 DMA 컨트롤러(1011)로 발송한다. DMA 컨트롤러(1011)는 판독된 데이터를 수신하며, 이를 전송 버퍼로 발송한다. DMA 컨트롤러(1011)가 데이터를 전송 버퍼로 전송할 때, 전송 스케줄러(1012)는 규칙에 따라 각각의 전송 버퍼가 DMA로부터 발송되는 데이터에 대해 순차적으로 기록하도록 제어하고, 전송 버퍼마다 동등한 기록 권한을 갖도록 하며, 즉 하나의 전송 버퍼에 데이터를 기록한 후, 다른 전송 버퍼가 이어서 데이터를 기록한다. 동시에, 전송 스케줄러(1012)는 규칙에 따라 각각의 전송 버퍼가 데이터를 순차적으로 판독하고 전송 컨트롤러(102)를 거쳐 백엔드 프로세서(103)로 발송하도록 제어한다. 여기서 전송 버퍼마다 동등한 판독 권한을 가지는 바, 즉 하나의 전송 버퍼로부터 데이터를 판독한 후, 다른 전송 버퍼가 이어서 데이터를 판독할 수 있다.
여기서, 도 1은 2개의 전송 버퍼를 포함하며, 각각 제1 전송 버퍼(1014)와 제2 전송 버퍼(1015)이다.
본 실시예에서 제공하는 데이터 전송 장치는 프론트엔드 프로세서(101), 전송 컨트롤러(102) 및 백엔드 프로세서(103)를 포함한다. 프론트엔드 프로세서(101)는 전송 컨트롤러(102)를 통해 백엔드 프로세서(103)와 연결된다. 프론트엔드 프로세서(101)는 DMA 컨트롤러(1011), 전송 스케줄러(1012), 메모리 컨트롤러(1013), 및 복수의 전송 버퍼를 포함하고, DMA 컨트롤러(1011)는 전송 컨트롤러(102), 메모리 컨트롤러(1013), 각각의 전송 버퍼 및 전송 스케줄러(1012)와 각각 연결되고, 전송 컨트롤러(102)와 전송 스케줄러(1012)는 모두 각각의 전송 버퍼와 각각 연결된다. DMA 컨트롤러(1011)는 백엔드 프로세서(103)로부터 발송되는 데이터 전송 요청을 수신하고, 데이터 전송 요청에 따라 메모리 컨트롤러(1013)로 데이터 판독 명령을 발송하고, 판독된 데이터를 수신하며, 이를 전송 버퍼로 발송하고; 메모리 컨트롤러(1013)는 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 DMA 컨트롤러(1011)로 발송하도록 제어하며; 전송 스케줄러(1012)는 복수의 전송 버퍼가 DMA 컨트롤러(1011)로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하고 전송 컨트롤러(102)를 거쳐 백엔드 프로세서(103)로 발송하도록 한다. 프론트엔드 프로세서(101)에서, 전송되는 데이터에 대해 질서적으로 스케줄링할 수 있으므로, 빅데이터의 신속한 전송을 구현할 수 있으며, 백엔드 프로세서(103)가 데이터의 수신 준비를 완료한 후 데이터를 전송함으로써, 백엔드 프로세서(103)의 부하를 증가시키기 않고, 대량의 자원이 소모되는 것을 방지한다.
또한, 본 실시예에서, DMA 컨트롤러(1011)는 구체적으로 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어한다.
구체적으로, 본 실시예에서, DMA 컨트롤러(1011)가 백엔드 프로세서(103)로부터 발송되는, 전송 정보를 포함하는 데이터 전송 요청을 수신하고, 전송 정보는 단일 프레임 전송 정보일 수 있고, 멀티 프레임 전송 정보일 수도 있으며, DMA 컨트롤러(1011)는 판독된 데이터를 수신하고, 이를 전송 버퍼로 발송할 때, 전송 정보가 단일 프레임 전송 정보이면, 직접 메모리 액세스 기술을 통해 단일 프레임 방식에 따라 데이터를 전송 버퍼로 발송하고, 전송 정보가 멀티 프레임 전송 정보이면, 직접 메모리 액세스 기술을 통해 멀티 프레임 방식에 따라 데이터를 전송 버퍼로 발송한다.
따라서 본 실시예에서 제공하는 데이터 전송 장치에서, DMA 컨트롤러(1011)는 구체적으로 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어함으로써, 직접 메모리 액세스 기술을 통해 데이터 전송을 수행할 수 있으므로, 데이터 전송 속도를 더욱 향상시킨다.
실시예 2
도 2는 본 발명의 실시예 2에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러(1011)의 제1 구성도이다. 도 2에 도시된 바와 같이, 본 발명의 실시예 2에서 제공하는 데이터 전송 장치는, 본 발명의 실시예 1에서 제공하는 데이터 전송 장치의 기초 상에서, 프론트엔드 프로세서(101)의 DMA 컨트롤러(1011)에 대해 더욱 세분화 한 것으로서, 본 실시예에서, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 카운터(1011b) 및 세그먼트 내 어드레싱 장치(1011c)를 포함한다.
여기서, 매핑 유닛(1011a)은 세그먼트 카운터(1011b) 및 세그먼트 내 어드레싱 장치(1011c)와 각각 연결되고, 세그먼트 카운터(1011b)는 세그먼트 내 어드레싱 장치(1011c)와 연결된다.
본 실시예에서, 매핑 유닛(1011a)은 백엔드 프로세서(103)로부터 발송되는 단일 프레임 데이터 전송 요청을 수신하고, 단일 프레임 데이터 전송 요청은 프레임 시작 주소 및 프레임 길이 정보를 포함하고, 프레임 시작 주소와 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑한다. 세그먼트 내 어드레싱 장치(1011c)는 DMA 컨트롤러(1011)로부터 발송되는 데이터를 기초로 세그먼트 내 어드레싱 정보를 업데이트하기 위한 것으로서, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 세그먼트 카운터(1011b)로 세그먼트 카운트 업데이트 정보를 발송하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다. 세그먼트 카운터(1011b)는 세그먼트 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하며, 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행한다.
바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치(1011c)는 구체적으로 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다. 세그먼트 카운터(1011b)는 세그먼트 카운트 업데이트 정보가 수신되면, 1을 빼는 카운팅을 수행하며, 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행한다. 즉, 바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치(1011c) 중의 세그먼트 내 어드레싱 초기값이 0이고, 세그먼트 카운터(1011b)에 의해 수행되는 빼기 카운팅은 1을 빼는 카운팅이다.
구체적으로, 본 실시예에서, DMA 컨트롤러(1011)에서 데이터가 단일 프레임 방식에 따라 전송되도록 제어하면, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 카운터(1011b) 및 세그먼트 내 어드레싱 장치(1011c)를 포함한다.
우선, 매핑 유닛(1011a)은 백엔드 프로세서(103)로부터 발송되는 단일 프레임 데이터 전송 요청을 수신하고, 단일 프레임 데이터 전송 요청은 프레임 시작 주소 및 프레임 길이 정보를 포함한다. 여기서, 프레임 시작 주소는 해당 단일 프레임 데이터의 저장 위치를 나타낼 수 있고, 프레임 길이 정보는 단일 프레임의 길이이다. 프레임 시작 주소와 프레임 길이 정보를 세그먼트 내 어드레싱 정보 및 세그먼트 카운트 정보로 매핑하고, 즉 해당 프레임 시작 주소를 가진 단일 프레임 데이터를 프레임 길이에 따라 복수의 세그먼트로 분할하고, 세그먼트마다 복수의 세그먼트 내 어드레싱을 포함한다. 프레임 시작 주소와 프레임 길이 정보를 세그먼트 내 어드레싱 정보 및 세그먼트 카운트 정보로 매핑한 후의 초기 상태에서, 세그먼트 카운트 정보는 해당 단일 프레임 데이터가 분할된 세그먼트 수량이다. 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱은 0이다.
다음, 세그먼트 내 어드레싱 장치(1011c)는 세그먼트 내 어드레싱 정보를 저장하는 동시에 DMA 컨트롤러(1011)로부터 발송되는 데이터를 모니터링하고, DMA 컨트롤러(1011)로부터 발송되는 데이터에 대해 세그먼트 내 어드레싱을 수행하고, 즉 세그먼트 내 어드레싱 정보를 업데이트하고, 세그먼트 내 코딩은 오름순이며, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 수신된 데이터가 하나의 세그먼트에 도달하였음을 의미하므로, 세그먼트 카운터(1011b)로 세그먼트 카운트 업데이트 정보를 발송하며, 동시에 다음 세그먼트에 대해 세그먼트 내 어드레싱을 수행하기 위하여, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 계속하여 메모리 컨트롤러(1013)로부터 발송되는 데이터를 기초로 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
여기서, 세그먼트 카운트 업데이트 정보는 세그먼트 카운터(1011b)에 의해1을 빼는 카운팅이 수행된 정보를 나타낸다.
마지막으로, 세그먼트 카운터(1011b)는 세그먼트 카운트 정보를 저장하고, 세그먼트 카운트 업데이트 정보가 수신되면 세그먼트 내 어드레싱 장치(1011c) 중의 세그먼트 내 어드레싱이 최대값에 도달하여, 현재 세그먼트의 데이터가 수신 완료되었고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하여야 한다는 것을 의미하므로, 세그먼트 내 카운터는 세그먼트 카운트 정보 중의 세그먼트 수량에 대해 1을 빼고, 계속하여 다음 세그먼트의 카운팅을 수행한다. 세그먼트 내 인코더 중의 세그먼트 내 코딩이 최대값에 도달하고, 세그먼트 카운터(1011b)의 세그먼트 카운트 정보 중의 카운트가 0이면, 해당 단일 프레임 데이터가 수신 완료되었음을 의미한다.
본 실시예에서 제공하는 데이터 전송 장치에서, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 카운터(1011b) 및 세그먼트 내 어드레싱 장치(1011c)를 포함하고, 백엔드 프로세서(103)의 단일 프레임 데이터 전송 요청에 따라 단일 프레임 데이터의 정확한 카운팅 및 전송을 수행할 수 있다.
실시예 3
도 3은 본 발명의 실시예 3에서 제공하는 데이터 전송 장치 중 DMA 컨트롤러(1011)의 구성도이다. 도 3에 도시된 바와 같이, 본 발명의 실시예 3에서 제공하는 데이터 전송 장치는 본 발명의 실시예 1에서 제공하는 데이터 전송 장치의 기초 상에서, 프론트엔드 프로세서(101)의 DMA 컨트롤러(1011)에 대해 더욱 세분화한 것으로서, 본 실시예에서, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 내 어드레싱 장치(1011c), 세그먼트 카운터(1011b) 및 프레임 카운터(1011d)를 포함한다.
여기서, 매핑 유닛(1011a)은 프레임 카운터(1011d), 세그먼트 카운터(1011b), 세그먼트 내 어드레싱 장치(1011c)와 각각 연결되고, 세그먼트 카운터(1011b)는 세그먼트 내 어드레싱 장치(1011c), 프레임 카운터(1011d)와 각각 연결된다.
본 실시예에서, 매핑 유닛(1011a)은 백엔드 프로세서(103)로부터 발송되는 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 멀티 프레임 데이터 전송 요청을 수신하고, 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑한다. 세그먼트 내 어드레싱 장치(1011c)는 DMA 컨트롤러(1011)로부터 발송되는 데이터를 기초로 세그먼트 내 어드레싱 정보를 업데이트하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 세그먼트 카운터(1011b)로 세그먼트 카운트 업데이트 정보를 발송하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다. 세그먼트 카운터(1011b)는 세그먼트 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하고, 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 프레임 카운터(1011d)로 프레임 카운트 업데이트 정보를 발송하고, 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행한다. 프레임 카운터(1011d)는 프레임 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하며, 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행한다.
바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치(1011c)는 구체적으로 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다. 세그먼트 카운터(1011b)는 구체적으로 세그먼트 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하고, 세그먼트 카운트 정보 중의 카운트가 0이면, 프레임 카운터(1011d)로 프레임 카운트 업데이트 정보를 발송하고; 프레임 카운터(1011d)는 구체적으로 프레임 카운트 업데이트 정보가 수신되면, 1을 빼는 카운팅을 수행하며, 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행한다. 즉, 바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치(1011c) 중의 세그먼트 내 어드레싱 초기값이 0이다. 세그먼트 카운터(1011b)에 의해 수행되는 빼기 카운팅은 1을 빼는 카운팅이고, 또한 세그먼트 카운트 초기값은 0이다. 프레임 카운터(1011d)에서 수행되는 빼기 카운팅은 1을 빼는 카운팅이고, 또한 프레임 카운트 초기값은 0이다.
구체적으로, 본 실시예에서, DMA 컨트롤러(1011)에서 데이터가 멀티 프레임 방식에 따라 전송되도록 제어하면, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 내 어드레싱 장치(1011c), 세그먼트 카운터(1011b) 및 프레임 카운터(1011d)를 포함한다.
우선, 매핑 유닛(1011a)은 백엔드 프로세서(103)로부터 발송되는 멀티 프레임 데이터 전송 요청을 수신하고, 멀티 프레임 데이터 전송 요청은 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함한다. 여기서, 프레임 수량은 멀티 프레임 데이터 전송 시 전송되는 프레임의 수량이고, 프레임 시작 주소는 멀티 프레임 데이터의 저장 위치를 결정할 수 있고, 프레임 길이 정보는 각각의 프레임의 길이이다. 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑하고, 즉 프레임 시작 주소를 가진 멀티 프레임 데이터를 프레임 수량에 따라 멀티 프레임으로 분할하고, 각각의 프레임을 프레임 길이에 따라 복수의 세그먼트로 분할하고, 세그먼트마다 복수의 세그먼트 내 어드레싱을 포함한다. 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑한 후의 초기 상태에서, 프레임 카운트 정보는 해당 멀티 프레임 데이터에 포함된 프레임 수량이고, 세그먼트 카운트 정보는 단일 프레임 데이터에 포함된 세그먼트 수량이고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱은 0이다.
다음, 세그먼트 내 어드레싱 장치(1011c)는 세그먼트 내 어드레싱 정보를 저장하고, 세그먼트 내 어드레싱 정보의 초기 상태는 0이며, 동시에 DMA 컨트롤러(1011)로부터 발송되는 데이터를 모니터링하고, DMA 컨트롤러(1011)로부터 발송되는 데이터를 기초로 세그먼트 내 어드레싱을 수행하며, 즉 세그먼트 내 어드레싱 정보를 업데이트하며, 세그먼트 내 코딩은 오름순으로서, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 수신된 데이터가 하나의 세그먼트에 도달하였음을 의미하므로, 세그먼트 카운터(1011b)로 세그먼트 카운트 업데이트 정보를 발송함과 동시에, 다음 세그먼트에 대해 세그먼트 내 어드레싱을 수행하기 위하여, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 계속하여 메모리 컨트롤러(1013)로부터 발송되는 데이터를 기초로 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
또한, 세그먼트 카운터(1011b)는 세그먼트 카운트 정보를 저장하고, 해당 저장된 세그먼트 카운트 정보의 초기 상태는 각각의 프레임 데이터에 포함된 세그먼트 수량이고, 세그먼트 카운트 업데이트 정보가 수신되면 세그먼트 내 어드레싱 장치(1011c) 중의 세그먼트 내 어드레싱이 최대값에 도달하여, 현재 세그먼트의 데이터가 수신 완료되었고, 다시 다음 세그먼트의 세그먼트 내 어드레싱을 수행하여야 한다는 것을 의미하므로, 세그먼트 내 카운터는 세그먼트 카운트 정보 중의 세그먼트 수량에 대해 1을 빼는 카운팅을 수행하고, 1을 빼는 카운팅을 수행하는 과정에서, 세그먼트 카운트 정보 중의 카운트가 0이 되면, 해당 프레임 데이터가 전송 완료되었음을 의미하므로, 프레임 카운터(1011d)로 프레임 카운트 업데이트 정보를 발송하고, 다음 프레임의 세그먼트 카운팅을 수행하도록 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정한다.
마지막으로, 프레임 카운터(1011d)는 프레임 카운트 정보를 저장하고, 프레임 카운트 정보의 초기 상태는 멀티 프레임이 전송되는 프레임 수량이고, 프레임 카운트 업데이트 정보가 수신되면, 현재 프레임의 데이터가 수신 완료되어, 다음 프레임의 데이터를 수신하여야 하는 것을 의미하므로, 1을 빼는 카운팅을 수행한다. 하나의 프레임 데이터가 수신될 때마다, 프레임 카운트 업데이트 정보에 대해 모두 1을 빼는 카운팅을 수행하고, 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
이해할 수 있는 바와 같이, 세그먼트 내 어드레싱 장치(1011c) 중의 세그먼트 내 어드레싱이 최대값에 도달하고, 세그먼트 내 카운터 중의 세그먼트 내 카운트는 0이고, 프레임 카운터(1011d) 중의 프레임 카운트는 0이면, 멀티 프레임 데이터가 전송 완료되었음을 의미한다.
본 실시예에서 제공하는 데이터 전송 장치에서, DMA 컨트롤러(1011)는 매핑 유닛(1011a), 세그먼트 내 어드레싱 장치(1011c), 세그먼트 카운터(1011b) 및 프레임 카운터(1011d)를 포함하여, 백엔드 프로세서(103)의 멀티 프레임 데이터 전송 요청에 따라 멀티 프레임 데이터의 정확한 카운팅과 전송을 수행할 수 있다.
실시예 4
도 4는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 구성도이다. 도 4에 도시된 바와 같이, 본 실시예에서 제공하는 데이터 전송 장치는 본 발명의 실시예 1 또는 본 발명의 실시예 2 또는 실시예 3에서 제공하는 데이터 전송 장치의 기초 상에서, 프론트엔드 프로세서(101)가 메모리(1016)를 더 포함한다. 또한 전송 스케줄러(1012)에 대해 더욱 세분화하며, 도 5는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 전송 스케줄러(1012)의 구성도이다. 도 5에 도시된 바와 같이, 본 실시예에서 제공하는 전송 스케줄러(1012)는 입구 스케줄러(1012a) 및 출구 스케줄러(1012b)를 포함한다.
여기서, 입구 스케줄러(1012a)는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어한다. 출구 스케줄러(1012b)는 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어한다.
또한, 본 실시예에서, 도 6은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 입구 스케줄러의 입구 스케줄링 상태의 점핑 도면이다. 도 6에 도시된 바와 같이, 본 실시예에서, 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함한다. 아이들 상태는 입구 스케줄러의 초기 상태이다. 전송 버퍼가 2개이면, 복수의 전송 버퍼 기록 상태는 제1 전송 버퍼 기록 상태와 제2 전송 버퍼 기록 상태를 포함한다. 여기서, 제1 전송 버퍼 기록 상태는 현재 상태가 제1 전송 버퍼로 기록하는 상태임을 나타내고, 제2 전송 버퍼 기록 상태는 현재 상태가 제2 전송 버퍼로 기록하는 상태임을 나타낸다.
여기서, 기록 토큰 정보는 전송 버퍼의 식별자를 포함하고, 기록 토큰 정보는 어느 전송 버퍼에 데이터 기록 권한이 있음을 나타내는 정보이다.
또한, 본 실시예에서, 입구 스케줄러(1012a)는 구체적으로, 입구 스케줄링 상태가 아이들 상태이고 기록 토큰 정보가 어느 기록 토큰 정보이면, 아이들 상태를 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어한다.
또한, 입구 스케줄러(1012a)는 또한 현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트한다.
여기서, 제1 기설정 길이값은 미리 설정된 모든 전송 버퍼가 매번 기록하는 데이터의 길이값이다. 예를 들어 256 bit이거나 기타 수치일 수 있으며, 본 실시예는 이에 대해 한정하지 않는다.
또한, 입구 스케줄러(1012a)는 구체적으로 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트한다.
여기서, 전송 버퍼의 기록 대기 시간은 이전에 데이터 기록을 완료한 후의 시점으로부터 데이터 기록을 다시 시작하는 시점까지의 시간 간격이다.
구체적으로, 본 실시예에서, 입구 스케줄러(1012a)는 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하여, 복수의 전송 버퍼가 균등한 기록 권한을 갖도록 할 수 있다. 초기에 데이터 기록을 수행하지 않았을 때, 각각의 전송 버퍼 기록 대기 시간이 동일하고, 사전에 복수의 전송 버퍼가 데이터를 기록하는 순서를 정의할 수 있다. 본 실시예에서, 두 개의 전송 버퍼를 예로 들어 설명한다. 즉, 입구 스케줄링 상태는 아이들 상태와 2개의 전송 버퍼 기록 상태를 포함한다. 입구 스케줄러(1012a)에서, 우선 입구 스케줄링 상태가 초기 상태이고, DMA 컨트롤러(1011)에 기록이 필요한 데이터가 있을 때, 기록 토큰 정보는 제1 기록 토큰 정보이고, 즉 제1 전송 버퍼(1014)는 데이터 기록 권한을 가지고 있으면, 입구 스케줄링 상태가 아이들 상태이며 기록 토큰 정보가 제1 기록 토큰 정보일 때, 아이들 상태가 제1 전송 버퍼 기록 상태로 점핑되도록 제어하고, 제1 전송 버퍼(1014)가 데이터를 기록하도록 제어한다. 제1 전송 버퍼(1014)가 데이터를 기록하는 과정에서, 기록되는 데이터의 길이에 대해 카운팅하고, 제1 전송 버퍼(1014)가 기록한 데이터가 제1 기설정 길이값에 도달하면, 제1 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 어느 기록 토큰 정보를 업데이트하고, 어느 기록 토큰 정보에 대해 업데이트할 때, 제2 전송 버퍼(1015)의 기록 대기 시간이 제1 전송 버퍼(1014)의 기록 대기 시간보다 긴 것으로 결정되면, 어느 기록 토큰 정보를 제2 기록 토큰 정보로 업데이트하며, 제2 전송 버퍼(1015)가 데이터 기록 권한을 가진다는 것을 나타내므로, 아이들 상태를 제2 전송 버퍼 기록 상태로 점핑하도록 제어하고, 제2 전송 버퍼(1015)가 데이터를 기록하도록 제어한다. 이렇게 순환 반복하여, 2개의 전송 버퍼가 균등한 기록 권한을 갖고, 균등하게 데이터의 기록을 수행하도록 한다.
본 실시예에서 제공하는 데이터 전송 장치에서, 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함한다. 입구 스케줄러는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어한다. 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함하고; 입구 스케줄러는 구체적으로 입구 스케줄링 상태가 아이들 상태이며 기록 토큰 정보가 어느 기록 토큰 정보이면, 아이들 상태를 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어한다. 입구 스케줄러는 구체적으로 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하고, 복수의 입구 스케줄링 상태 및 기록 토큰 정보를 설정함으로써, 복수의 전송 버퍼가 균등한 기록 권한을 갖고, 각각의 전송 버퍼가 데이터의 기록을 수행하도록 신독하게 스케줄링할 수 있다.
또한, 본 실시예에서, 도 7은 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 출구 스케줄러의 출구 스케줄링 상태의 점핑 도면이다. 도 7에 도시된 바와 같이, 본 실시예에서, 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함한다.
여기서, 전송 컨트롤러 검출 상태는 전송 컨트롤러(102)에 대해 검출하는 상태이고, 전송 컨트롤러는 USB 컨트롤러일 수 있다. 전송 버퍼 검출 상태는 전송 버퍼에 대해 검출하는 상태로서, 전송 버퍼가 2개이면, 복수의 전송 버퍼 판독 상태는 제1 전송 버퍼 판독 상태와 제2 전송 버퍼 판독 상태를 포함한다. 여기서, 제1 전송 버퍼 판독 상태는 현재 상태가 제1 전송 버퍼(1014)가 데이터를 판독하는 상태임을 나타내고, 제2 전송 버퍼 판독 상태는 현재 상태가 제2 전송 버퍼(1015)가 데이터를 판독하는 상태임을 나타낸다. 전송 컨트롤러 검출 상태는 출구 스케줄러의 초기 상태이다.
또한, 본 실시예에서, 출구 스케줄러(1012b)는 구체적으로 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이며 판독 토큰 정보가 어느 판독 토큰 정보이면, 전송 컨트롤러는 검출 후 전송 컨트롤러 검출 상태를 전송 버퍼 검출 상태로 점핑하도록 제어하고, 전송 버퍼는 검출 후 전송 버퍼 검출 상태를 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 판독하도록 제어한다.
또한, 본 실시예에서, 출구 스케줄러(1012b)는 또한 현재 전송 컨트롤러가 판독하는 데이터가 제2 기설정 길이값에 도달하면, 현재 전송 버퍼 판독 상태를 인터페이스 버퍼 검출 상태로 업데이트하고, 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트한다.
여기서, 판독 토큰 정보는 전송 버퍼의 식별자를 포함하고, 판독 토큰 정보는 어느 전송 버퍼에 데이터 판독 권한이 있음을 나타내는 정보이다.
여기서, 제2 기설정 길이값은 미리 설정된 모든 전송 버퍼가 매번 판독한 데이터의 길이이다. 예컨대 256bit이거나 기타 수치일 수 있으며, 본 실시예에서는 이에 대해 한정하지 않는다.
또한, 본 실시예에서, 출구 스케줄러(1012b)는 구체적으로 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트한다.
여기서, 전송 버퍼의 판독 대기 시간은 이전에 데이터 판독을 완료한 후의 시점으로부터 데이터 판독을 다시 시작하는 시점까지의 시간 간격이다.
구체적으로, 본 실시예에서, 출구 스케줄러(1012b)는 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트하여, 복수의 전송 버퍼가 균등한 판독 권한을 갖도록 할 수 있으며, 본 실시예에서, 2개의 전송 버퍼를 예로 들어 설명한다. 즉, 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 제1 전송 버퍼 판독 상태, 제2 전송 버퍼 판독 상태를 포함한다. 출구 스케줄러(1012b)에서, 우선 출구 스케줄링 상태가 초기 상태이고, 어느 전송 버퍼로부터 데이터를 판독하고 데이터를 전송 컨트롤러(102)로 전송한다. 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이며 판독 토큰 정보가 제1 판독 토큰 정보이면, 제1 전송 버퍼(1014)가 판독 권한을 가지며 출구 호출 상태가 초기 상태임을 나타내고, 전송 컨트롤러(102)가 데이터 수신 준비를 완료한 것이 검출되면, 전송 컨트롤러 검출 상태를 전송 버퍼 검출 상태로 점핑하고, 제1 전송 버퍼(1014)가 데이터 판독 준비를 완료한 것이 검출되면, 전송 버퍼 검출 상태를 제1 전송 버퍼 판독 상태로 점핑하고, 제1 전송 버퍼(1014)가 데이터를 판독하도록 제어한다. 제1 전송 버퍼(1014) 데이터 과정에서, 판독한 데이터 길이에 대해 카운팅하고, 제1 전송 버퍼(1014)의 데이터 기록이 제2 기설정 길이값에 도달하면, 제1 전송 버퍼 판독 상태를 전송 컨트롤러 검출 상태로 업데이트하고, 제1 판독 토큰 정보에 대해 업데이트하고, 제1 판독 토큰 정보에 대해 업데이트할 때, 제2 전송 버퍼(1015)의 판독 대기 시간이 제1 전송 버퍼(1014)의 판독 대기 시간보다 긴 것으로 결정되면, 제1 판독 토큰 정보를 제2 판독 토큰 정보로 업데이트하고, 제2 전송 버퍼(1015)가 데이터 판독 권한을 가진 것을 나타내므로, 전송 컨트롤러(102)가 데이터 수신 준비를 완료한 후, 전송 컨트롤러 검출 상태를 전송 버퍼 검출 상태로 점핑하고, 제2 전송 버퍼(1015)가 데이터 판독 준비를 완료한 것이 검출된 후, 전송 버퍼 검출 상태를 제2 전송 버퍼 판독 상태로 점핑하고, 제2 전송 버퍼(1015)가 데이터를 판독하도록 제어한다. 이렇게 순환 반복하여, 2개의 전송 버퍼가 균등한 판독 권한을 갖고, 균등하게 데이터를 판독하도록 한다.
본 실시예에서 제공하는 데이터 전송 장치에서, 전송 스케줄러(1012)는 출구 스케줄러를 포함하고, 출구 스케줄러는 출구 스케줄링 상태와 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하고, 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함하고; 출구 스케줄러는 구체적으로 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이며 판독 토큰 정보가 어느 판독 토큰 정보이면, 전송 컨트롤러는 검출 후 전송 컨트롤러 검출 상태를 전송 버퍼 검출 상태로 점핑하도록 제어하고, 전송 버퍼는 검출 후 전송 버퍼 검출 상태를 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 판독하도록 제어한다. 출구 스케줄러는 구체적으로, 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트한다. 복수의 출구 스케줄링 상태 및 기록 토큰 정보를 설정함으로써, 복수의 전송 버퍼가 균등한 판독 권한을 갖고, 각각의 전송 버퍼가 데이터의 판독을 수행하도록 신독하게 스케줄링할 수 있다.
또한, 본 실시예에서, 프론트엔드 컨트롤러는 메모리(1016)를 더 포함한다.
메모리(1016)는 메모리 컨트롤러(1013)와 연결되어 메모리 컨트롤러(1013)의 제어에 따라 프론트엔드 메모리로부터 데이터를 판독한다.
실시예 5
본 발명의 실시예 5에서 제공하는 데이터 전송 장치는 본 발명의 실시예 4에서 제공하는 데이터 전송 장치의 기초 상에서, 전송 컨트롤러(102)와 백엔드 프로세서(103)에 대해 더욱 세분화한 것이다.
도 8은 본 발명의 실시예 5에서 제공하는 데이터 전송 장치의 전송 컨트롤러(102)의 구성도이다. 도 8에 도시된 바와 같이, 본 실시예에서, 전송 컨트롤러(102)는 멀티 데이터 버퍼 영역(102a), 전송 프로세서(102b) 및 직렬 통신 엔진(102c)을 포함한다.
여기서, 전송 프로세서(102b)는 멀티 데이터 버퍼 영역(102a), 직렬 통신 엔진(102c)과 각각 연결된다.
구체적으로, 멀티 데이터 버퍼 영역(102a)은 데이터에 대해 캐싱한다. 전송 프로세서(102b)는 멀티 데이터 버퍼 영역(102a) 중의 데이터를 직렬 통신 엔진(102c)으로 발송한다. 직렬 통신 엔진(102c)은 전송 프로세서(102b)로부터 발송되는 데이터를 수신하고, 데이터를 백엔드 프로세서(103)로 발송한다.
본 실시예에서, 전송 컨트롤러(102)는 USB3.0 컨트롤러를 사용한다.
본 실시예에서 제공하는 데이터 전송 장치에서, 전송 컨트롤러(102)는 멀티 데이터 버퍼 영역(102a), 전송 프로세서(102b) 및 직렬 통신 엔진(102c)을 포함하고, 멀티 데이터 버퍼 영역(102a)은 데이터에 대해 캐싱하고; 전송 프로세서(102b)는 멀티 데이터 버퍼 영역(102a) 중의 데이터를 직렬 통신 엔진(102c)으로 발송하고; 직렬 통신 엔진(102c)은 전송 프로세서(102b)로부터 발송되는 데이터를 수신하고, 데이터를 백엔드 프로세서(103)로 발송하고, 멀티 데이터 버퍼 영역은 데이터에 대해 효과적으로 캐싱할 수 있으므로, 데이터를 직접 백엔드 프로세서로 전송할 때, 백엔드 프로세서가 적시에 데이터를 저장하지 못하여, 데이터가 쌓이는 것을 효과적으로 방지할수 있다.
또한, 본 실시예에서, 백엔드 프로세서(103)는 멀티 코어 CPU를 포함한다.
구체적으로, 멀티 코어 CPU는 데이터를 병행 방식을 통해 백엔드 메모리로 전송한다.
본 실시예에서 제공하는 데이터 전송 장치에서, 백엔드 프로세서(103)는 멀티 코어 CPU를 사용하여 데이터를 병행으로 백엔드 메모리로 전송하여, 데이터 전송을 더욱 가속화할 수 있다.
실시예 6
도 9는 본 발명의 실시예 6에서 제공하는 데이터 전송 방법의 흐름도이다. 도 9에 도시된 바와 같이, 실시예에서 제공하는 데이터 전송 방법의 수행 주체가 데이터 전송 장치이면, 본 실시예에서 제공하는 데이터 전송 방법은 아래의 단계들을 포함한다.
단계(901), DMA 컨트롤러는 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 데이터 전송 요청에 따라 메모리 컨트롤러로 데이터 판독 명령을 발송한다.
단계(902), 메모리 컨트롤러는 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 DMA 컨트롤러로 발송하도록 제어한다.
단계(903), DMA 컨트롤러는 판독된 데이터를 수신하며, 이를 전송 버퍼로 발송한다.
단계(904), 전송 스케줄러는 복수의 전송 버퍼가 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하고 전송 컨트롤러를 거쳐 백엔드 프로세서로 전송하도록 제어한다.
본 실시예에서, 본 발명의 실시예 1에서 제공하는 데이터 전송 장치를 사용하여 본 실시예에 따른 데이터 전송 방법의 기술방안을 수행할 수 있다. 이들의 구현 원리와 기술 효과는 유사하므로, 여기서는 반복되는 설명을 생략한다.
또한, 본 실시예에서, 단계(903)는,
DMA 컨트롤러가 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어하는 단계를 포함한다.
본 실시예에서 제공하는 데이터 전송 방법에서, DMA 컨트롤러는 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어함으로써, 직접 메모리 액세스 기술을 통해 데이터를 전송할 수 있으며, 데이터 전송 속도를 더욱 가속화한다.
실시예 7
도 10은 본 발명의 실시예 7에서 제공하는 데이터 전송 방법의 흐름도이다. 도 10에 도시된 바와 같이, 본 실시예에서 제공하는 데이터 전송 방법은 본 발명의 실시예 6에서 제공하는 데이터 전송 방법의 기초 상에서, 단계(901) 및 단계(903)에 대해 더욱 세분화한 것으로서, 여기서, DMA 컨트롤러는 매핑 유닛, 세그먼트 카운터 및 세그먼트 내 어드레싱 장치를 포함한다. 본 실시예에 따른 데이터 전송 방법에서, DMA 컨트롤러가 데이터가 단일 프레임 방식에 따라 전송되도록 제어하면, 본 실시예에서 제공하는 데이터 전송 방법은 아래의 단계들을 포함한다.
단계(1001), 매핑 유닛은 백엔드 프로세서로부터 발송되는, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단일 프레임 데이터 전송 요청을 수신하고, 단일 프레임 데이터 전송 요청에 따라 메모리 컨트롤러로 데이터 판독 명령을 발송한다.
단계(1002), 메모리 컨트롤러는 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 DMA 컨트롤러로 발송하도록 제어한다.
단계(1003), DMA 컨트롤러는 데이터가 단일 프레임 방식에 따라 전송되도록 제어한다.
또한, DMA 컨트롤러는 데이터가 단일 프레임 방식에 따라 전송되도록 제어하는 단계는 구체적으로 아래의 단계들을 포함한다.
단계(1003a), 매핑 유닛이 프레임 시작 주소와 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑한다.
단계(1003b), 세그먼트 내 어드레싱 장치는 DMA 컨트롤러로부터 발송되는 데이터 업데이트 세그먼트 내 어드레싱 정보를 기초로수신하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
바람직하게, 본 실시예에서, 단계(1003b)에서, 세그먼트 내 어드레싱 장치는 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
세그먼트 내 어드레싱 장치가 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
즉 바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치 중의 세그먼트 내 어드레싱 초기값은 0이다.
단계(1003c), 세그먼트 카운터는 세그먼트 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하며, 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행한다.
바람직하게, 본 실시예에서, 단계(1003c)는 구체적으로,
세그먼트 카운터가 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하며, 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
즉 바람직하게, 본 실시예에서, 세그먼트 카운터가 수행하는 빼기 카운팅은 1을 빼는 카운팅이고, 세그먼트 카운트 초기값은 0이다.
단계(1004), 전송 스케줄러는 복수의 전송 버퍼가 DMA로부터 발송되는 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하고 전송 컨트롤러를 거쳐 백엔드 프로세서로 전송하도록 제어한다.
본 실시예에서, 본 발명의 실시예 2에서 제공하는 데이터 전송 장치를 사용하여 본 실시예에서의 데이터 전송 방법의 기술방안을 수행할 수 있다. 이들의 구현 원리와 기술 효과는 유사하므로, 여기서는 반복되는 설명을 생략한다.
실시예 8
도 11은 본 발명의 실시예 8에서 제공하는 데이터 전송 방법의 흐름도이다. 도 11에 도시된 바와 같이, 본 실시예에서 제공하는 데이터 전송 방법은 본 발명의 실시예 8에서 제공하는 데이터 전송 방법의 기초 상에서, 단계(901) 및 단계(903)에 대해 더욱 세분화한 것으로서, 여기서, DMA 컨트롤러는 매핑 유닛, 세그먼트 내 어드레싱 장치, 세그먼트 카운터 및 프레임 카운터를 포함한다. 본 실시예에 따른 데이터 전송 방법에서, DMA 컨트롤러가 데이터가 멀티 프레임 방식에 따라 전송되도록 제어하면, 본 실시예에서 제공하는 데이터 전송 방법은 아래의 단계들을 포함한다.
단계(1101), 매핑 유닛은 백엔드 프로세서로부터 발송되는, 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 멀티 프레임 데이터 전송 요청을 수신하고, 멀티 프레임 데이터 전송 요청을 기초로 메모리 컨트롤러로 데이터 판독 명령을 발송한다.
단계(1102), 메모리 컨트롤러는 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 DMA 컨트롤러로 발송하도록 제어한다.
단계(1103), DMA 컨트롤러는 데이터가 멀티 프레임 방식에 따라 전송되도록 제어한다.
또한, 본 실시예에서, 단계(1103)는 구체적으로 아래의 단계들을 포함한다.
단계(1103a), 매핑 유닛이 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑한다.
단계(1103b), 세그먼트 내 어드레싱 장치는 DMA 컨트롤러로부터 발송된 데이터를 기초로 세그먼트 내 어드레싱 정보를 업데이트하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
바람직하게, 본 실시예에서, 단계(1103b)에서 세그먼트 내 어드레싱 장치가 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
세그먼트 내 어드레싱 장치가 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하고, 다음 세그먼트의 세그먼트 내 어드레싱을 수행한다.
즉 바람직하게, 본 실시예에서, 세그먼트 내 어드레싱 장치 중의 세그먼트 내 어드레싱 초기값은 0이다.
단계(1103c), 세그먼트 카운터는 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하고, 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고, 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행한다.
바람직하게, 본 실시예에서, 단계(1103c)는 구체적으로,
세그먼트 카운터가 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하고, 세그먼트 카운트 정보 중의 카운트가 0이면, 프레임 카운터로 프레임 카운트 업데이트 정보를 발송한다.
즉 바람직하게, 본 실시예에서, 세그먼트 카운터에서 수행하는 빼기 카운팅은 1 빼기 카운팅이고, 세그먼트 카운트 초기값은 0이다.
단계(1103d), 프레임 카운터는 프레임 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행한다.
바람직하게, 본 실시예에서, 단계(1103d)는 구체적으로,
프레임 카운터는 프레임 카운트 업데이트 정보를 수신하면, 1을 빼는 카운팅을 수행하며, 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행한다.
즉 바람직하게, 본 실시예에서, 프레임 카운터에 의해 수행되는 빼기 카운팅은 1을 빼는 카운팅이고, 프레임 카운트 초기값은 0이다.
단계(1104), 전송 스케줄러는 복수의 전송 버퍼가 DMA로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하여 전송 컨트롤러를 거쳐 백엔드 프로세서로 전송하도록 제어한다.
본 실시예에서, 본 발명의 실시예 3에서 제공하는 데이터 전송 장치를 사용하여 본 실시예에 따른 데이터 전송 방법의 기술방안을 수행할 수 있다. 이들의 구현 원리와 기술 효과는 유사하므로, 여기서는 반복되는 설명을 생략한다.
실시예 9
도 12는 본 발명의 실시예 9에서 제공하는 데이터 전송 방법의 흐름도이다. 도 12에 도시된 바와 같이, 본 실시예에서 제공하는 데이터 전송 방법은 본 발명의 실시예 6 또는 실시예 7 또는 실시예 8에서 제공하는 데이터 전송 방법의 기초 상에서, 단계(904) 또는 단계(1004) 또는 단계(1104)에 대해 더욱 세분화한 것으로서, 여기서, 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함한다. 본 실시예에 따른 데이터 전송 방법은, 본 발명의 실시예 1을 기초로, 전송 스케줄러가 복수의 전송 버퍼가 DMA로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 전송 버퍼가 데이터를 판독하여 전송 컨트롤러를 거쳐 백엔드 프로세서로 전송하도록 제어하는 단계(904)는 구체적으로 아래의 단계들을 포함한다.
단계(904a), 입구 스케줄러는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어한다.
또한, 입구 스케줄러는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하는 단계는, 구체적으로,
입구 스케줄링 상태가 아이들 상태이며 기록 토큰 정보가 어느 기록 토큰 정보이면, 아이들 상태를 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어하는 단계를 포함한다.
본 실시예에서, 해당 전송 버퍼에 데이터를 기록하도록 제어하는 단계 후에,
현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계를 더 포함한다.
또한, 본 실시예에서, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계는 구체적으로,
입구 스케줄러가 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하는 단계를 포함한다.
단계(904b), 출구 스케줄러는 출구 스케줄링 상태와 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어한다.
또한, 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함한다.
출구 스케줄러는 출구 스케줄링 상태와 판독 토큰 정보를 기초로, 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 단계는 구체적으로,
출구 스케줄링 상태가 전송 컨트롤러 검출 상태이고 판독 토큰 정보가 어느 판독 토큰 정보이면, 전송 컨트롤러는 검출 후 전송 컨트롤러 검출 상태를 전송 버퍼 검출 상태로 점핑하도록 제어하고, 전송 버퍼는 검출 후 전송 버퍼 검출 상태를 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼로부터 데이터를 판독하도록 제어한다.
본 실시예에서, 해당 전송 버퍼로부터 데이터를 판독하도록 제어하는 단계 이후에,
현재 전송 컨트롤러에서 판독하는 데이터가 제2 기설정 길이값에 도달하면, 현재 전송 버퍼 판독 상태를 인터페이스 버퍼 검출 상태로 업데이트하고, 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 단계를 더 포함한다.
또한, 본 실시예에서, 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 단계는 구체적으로,
출구 스케줄러가 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트하는 단계를 포함한다.
본 실시예에서, 본 발명의 실시예 4에서 제공하는 데이터 전송 장치를 사용하여 본 실시예에 따른 데이터 전송 방법의 기술방안을 수행할 수 있다. 이들의 구현 원리와 기술 효과는 유사하므로, 여기서는 반복되는 설명을 생략한다.
실시예 10
도 13은 본 발명의 실시예 10에서 제공하는 데이터 전송 방법의 흐름도이다. 본 실시예에서 제공하는 데이터 전송 방법은 본 발명의 실시예6에서 제공하는 데이터 전송 방법의 기초 상에서, 단계(904) 후에, 아래의 단계들을 더 포함한다.
단계(1301), 멀티 데이터 버퍼 영역에서 데이터에 대해 캐싱한다.
단계(1302), 전송 프로세서가 멀티 데이터 버퍼 영역 중의 데이터를 직렬 통신 엔진으로 발송한다.
단계(1303), 직렬 통신 엔진이 전송 프로세서로부터 발송되는 데이터를 수신하고, 데이터를 백엔드 프로세서로 발송한다.
단계(1304), 멀티 코어 CPU가 데이터를 병행 방식을 통해 백엔드 메모리로 전송한다.
본 실시예에서, 본 발명의 실시예 5에서 제공하는 데이터 전송 장치를 사용하여 본 실시예에 따른 데이터 전송 방법의 기술방안을 수행할 수 있다. 이들의 구현 원리와 기술 효과는 유사하므로, 여기서는 반복되는 설명을 생략한다.
실시예 11
본 발명의 실시예 11은 컴퓨터 프로그램이 저장되어 있는 컴퓨터 판독 가능 저장매체를 더 제공하며, 컴퓨터 프로그램이 프로세서에 의해 실행되어 본 발명의 실시예 1 내지 실시예 5 중 어느 하나에 따른 방법을 구현한다.
본 발명에서 제공하는 몇개의 실시예에서, 개시된 장치 및 방법은 기타 방식을 통해 구현될 수 있다는 것을 이해하여야 한다. 예를 들어, 상술한 장치 실시예는 예시적인 것일 뿐, 예를 들어 모듈의 구획은 단지 논리적 기능의 구획으로서, 실제 구현 시 별도의 구획 방식이 존재할 수 있는 바, 예를 들어 복수의 모듈 또는 어셈블리는 결합되거나 다른 하나의 시스템에 집적될 수 있거나, 또는 일부 특징을 무시하거나 수행하지 않을 수 있다. 한편, 표시되거나 기재된 서로 사이의 커플링 또는 직접 커플링 또는 통신 연결은 일부 인터페이스, 장치 또는 유닛을 통한 간접적인 커플링 또는 통신 연결일 수 있고, 전기적, 기계적 또는 기타 형태일 수 있다.
분리 부재로서 설명되는 모듈은 물리적으로 분리된 것이거나 아닌 것일 수 있고, 모듈로서 표시된 부재는 물리적 모듈이거나 아닐 수도 있는 바, 즉 하나의 지점에 위치될 수 있거나 복수의 네트워크 모듈에 분포될 수 있다. 실제 수요에 따라 그 중 일부 또는 모든 모듈을 선택하여 본 실시예에 따른 해결수단의 목적을 구현할 수 있다.
한편, 본 발명의 각각의 실시예에 따른 각각의 기능 모듈은 하나의 처리 모듈에 집적될 수 있고, 각각의 모듈이 단독의 물리적으로 존재할 수도 있으며, 둘 또는 둘 이상의 모듈이 하나의 모듈에 집적될 수도 있다. 상술한 집적된 모듈은 하드웨어의 형태로 구현될 수 있고, 하드웨어와 소프트웨어 기능 모듈의 형태로 구현될 수도 있다.
본 발명의 방법을 실시하기 위한 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합을 사용하여 작성할 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 기타 프로그러머블 데이터 처리 장치의 프로세서 또는 컨트롤러에 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 때 흐름도 및/또는 블록도에서 규정한 기능/조작이 실시되도록 할 수 있다. 프로그램 코드는 전부 기계 상에서 실행되거나, 부분적으로 기계 상에서 실행될 수 있으며, 독립적인 소프트웨어 패키지로서 부분적으로 기계 상에서 실행되고 부분적으로 원격 기계 상에서 실행되거나 전부 원격 기계 또는 서버 상에서 실행될 수도 있다.
본 발명의 문맥에서, 기계 판독 가능 매체는 유형의 매체일 수 있고, 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 명령 실행 시스템, 장치 또는 기기와 결합하여 사용되는 프로그램을 포함하거나 저장할 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자적, 자기적, 광학적, 전자기적, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상술한 내용의 임의의 적합한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장매체의 더욱 구체적인 예시로서 하나 또는 복수의 선으로 연결된 전기적 연결, 휴대식 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그래머블 판독 전용 메모리(EPROM 또는 플래쉬 메모리), 광섬유, 휴대식 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 장치, 자기 저장 장치 또는 상술한 내용의 임의의 적합한 조합을 포함한다.
한편, 비록 특정 순서를 사용하여 각각의 조작에 대해 설명하였지만, 이들은 이렇게 조작하여 개시된 특정 순서 또는 순서 차순에 따라 수행할 것을 요구하거나, 또는 모든 도시된 조작이 수행되어 원하는 결과를 획득할 것을 요구하는 것으로 이해하여야 한다. 일정한 환경에서, 멀티 임무와 병행 처리가 유리할 수 있다. 마찬가지로, 비록 위에서 몇개의 구체적인 구현에 대해 상세하게 설명하였지만, 이러한 것들은 본 출원의 범위를 한정하는 것으로 이해하여서는 않된다. 별도의 실시예의 문맥에서 설명되는 일부 특징들은 조합되어 단일한 구현에서 구현될 수도 있다. 반대로, 단일한 구현의 문맥에서 기재되는 다양한 특징도 단독으로 또는 임의의 적합한 서브 조합의 형태로 복수의 구현에서 구현될 수도 있다.
비록 구조 특징 및/또는 방법 논리 동작에 특정된 언어를 사용하여 본 주제를 설명하였지만, 첨부되는 청구항에서 한정하는 주제는 반드시 상술한 특정 특징 또는 동작에 제한되지 않는 것으로 이해하여야 한다. 반대로, 상술한 특정 특징 및 동작은 단지 청구서의 예시적 형태를 구현하기 위한 것이다.
101: 프론트엔드 프로세서
1011: DMA 컨트롤러
1011a: 매핑 유닛 1011b: 세그먼트 카운터
1011c: 세그먼트 내 어드레싱 장치 1101d: 프레임 카운터
1012: 전송 스케줄러 1012a: 입구 스케줄러
1012b: 출구 스케줄러 1013: 메모리 컨트롤러
1014: 제1 전송 버퍼 1015: 제2 전송 버퍼
1016: 메모리 102: 전송 컨트롤러
102a: 멀티 데이터 버퍼 영역 102b: 전송 프로세서
102c: 직렬 통신 엔진 103: 백엔드 프로세서
1011a: 매핑 유닛 1011b: 세그먼트 카운터
1011c: 세그먼트 내 어드레싱 장치 1101d: 프레임 카운터
1012: 전송 스케줄러 1012a: 입구 스케줄러
1012b: 출구 스케줄러 1013: 메모리 컨트롤러
1014: 제1 전송 버퍼 1015: 제2 전송 버퍼
1016: 메모리 102: 전송 컨트롤러
102a: 멀티 데이터 버퍼 영역 102b: 전송 프로세서
102c: 직렬 통신 엔진 103: 백엔드 프로세서
Claims (31)
- 프론트엔드 프로세서, 전송 컨트롤러 및 백엔드 프로세서를 포함하고;
상기 프론트엔드 프로세서는 상기 전송 컨트롤러를 통해 상기 백엔드 프로세서와 연결되고;
상기 프론트엔드 프로세서는 DMA 컨트롤러, 전송 스케줄러, 메모리 컨트롤러 및 복수의 전송 버퍼를 포함하고, 상기 DMA 컨트롤러는 상기 전송 컨트롤러, 상기 메모리 컨트롤러, 각각의 상기 전송 버퍼 및 상기 전송 스케줄러와 각각 연결되고, 상기 전송 컨트롤러와 상기 전송 스케줄러는 모두 각각의 상기 전송 버퍼와 각각 연결되고;
상기 DMA 컨트롤러는 상기 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 상기 데이터 전송 요청에 따라 상기 메모리 컨트롤러로 데이터 판독 명령을 발송하고, 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하고;
상기 메모리 컨트롤러는 상기 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 상기 DMA 컨트롤러로 발송하도록 제어하고;
상기 전송 스케줄러는 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하여 상기 전송 컨트롤러를 상기 백엔드 프로세서로 전송하도록 제어하는 것을 특징으로 하는 데이터 전송 장치.
- 제1항에 있어서,
상기 DMA 컨트롤러는 구체적으로 상기 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어하는 것을 특징으로 하는 장치.
- 제2항에 있어서,
상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 카운터 및 세그먼트 내 어드레싱 장치를 포함하고;
상기 매핑 유닛은 상기 세그먼트 카운터 및 상기 세그먼트 내 어드레싱 장치와 각각 연결되고, 상기 세그먼트 카운터는 상기 세그먼트 내 어드레싱 장치와 연결되고;
상기 매핑 유닛은 상기 백엔드 프로세서로부터 발송되는 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단일 프레임 데이터 전송 요청을 수신하고, 상기 프레임 시작 주소와 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑하고;
상기 세그먼트 내 어드레싱 장치는 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면, 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행하는 것을 특징으로 하는 장치.
- 제3항에 있어서,
상기 세그먼트 내 어드레싱 장치는 구체적으로, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행하는 것을 특징으로 하는 장치.
- 제1항에 있어서,
상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 내 어드레싱 장치, 세그먼트 카운터 및 프레임 카운터를 포함하고;
상기 매핑 유닛은 상기 프레임 카운터, 상기 세그먼트 카운터, 상기 세그먼트 내 어드레싱 장치와 각각 연결되고, 상기 세그먼트 카운터는 상기 세그먼트 내 어드레싱 장치, 상기 프레임 카운터와 각각 연결되고;
상기 매핑 유닛은 상기 백엔드 프로세서로부터 발송되는, 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 멀티 프레임 데이터 전송 요청을 수신하고, 상기 프레임 수량, 상기 프레임 시작 주소 및 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑하고;
상기 세그먼트 내 어드레싱 장치는 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 상기 세그먼트 카운트 업데이트 정보가 수신되면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고, 상기 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행하고;
상기 프레임 카운터는 프레임 카운트 업데이트 정보가 수신되면, 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행하는 것을 특징으로 하는 장치.
- 제5항에 있어서,
상기 세그먼트 내 어드레싱 장치는 구체적으로 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터는 구체적으로 상기 세그먼트 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 0이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고;
상기 프레임 카운터는 구체적으로 프레임 카운트 업데이트 정보가 수신되면 1을 빼는 카운팅을 수행하고, 상기 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행하는 것을 특징으로 하는 장치. - 제1항에 있어서,
상기 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함하고;
상기 입구 스케줄러는 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하고;
상기 출구 스케줄러는 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 것을 특징으로 하는 장치.
- 제7항에 있어서,
상기 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함하고;
상기 입구 스케줄러는 구체적으로 상기 입구 스케줄링 상태가 아이들 상태이고 상기 기록 토큰 정보가 어느 기록 토큰 정보이면, 상기 아이들 상태를 상기 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어하는 것을 특징으로 하는 장치. - 제8항에 있어서,
상기 입구 스케줄러는 또한 현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 것을 특징으로 하는 장치.
- 제9항에 있어서,
상기 입구 스케줄러는 구체적으로 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하는 것을 특징으로 하는 장치.
- 제7항에 있어서,
상기 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함하고;
상기 출구 스케줄러는 구체적으로 상기 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이고 상기 판독 토큰 정보가 어느 판독 토큰 정보이면, 상기 전송 컨트롤러는 검출 후 상기 전송 컨트롤러 검출 상태를 상기 전송 버퍼 검출 상태로 점핑하도록 제어하고, 상기 전송 버퍼는 검출 후 상기 전송 버퍼 검출 상태를 상기 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 판독하도록 제어하는 것을 특징으로 하는 장치.
- 제11항에 있어서,
상기 출구 스케줄러는 또한 현재 전송 컨트롤러가 판독한 데이터가 제2 기설정 길이값에 도달하면, 상기 현재 전송 버퍼 판독 상태를 상기 인터페이스 버퍼 검출 상태로 업데이트하고, 상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 것을 특징으로 하는 장치.
- 제12항에 있어서,
상기 출구 스케줄러는 구체적으로, 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트하는 것을 특징으로 하는 장치.
- 제1항에 있어서,
상기 전송 컨트롤러는 멀티 데이터 버퍼 영역, 전송 프로세서 및 직렬 통신 엔진을 포함하고;
상기 전송 프로세서는 상기 멀티 데이터 버퍼 영역, 상기 직렬 통신 엔진과 각각 연결되고;
상기 멀티 데이터 버퍼 영역은 상기 데이터에 대해 캐싱하고;
상기 전송 프로세서는 상기 멀티 데이터 버퍼 영역 중의 데이터를 상기 직렬 통신 엔진으로 발송하고;
상기 직렬 통신 엔진은 상기 전송 프로세서로부터 발송되는 데이터를 수신하고, 상기 데이터를 백엔드 프로세서로 발송하는 것을 특징으로 하는 장치.
- 제1항에 있어서,
상기 백엔드 프로세서는 멀티 코어 CPU를 포함하고;
상기 멀티 코어 CPU는 데이터를 병행 방식에 따라 백엔드 메모리로 전송하는 것을 특징으로 하는 장치.
- DMA 컨트롤러가 상기 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하고, 상기 데이터 전송 요청에 따라 상기 메모리 컨트롤러로 데이터 판독 명령을 발송하는 단계;
상기 메모리 컨트롤러가 상기 데이터 판독 명령에 따라 메모리가 데이터를 판독하고, 판독한 데이터를 상기 DMA 컨트롤러로 발송하도록 제어하는 단계;
상기 DMA 컨트롤러가 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하는 단계;
상기 전송 스케줄러가 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하고 상기 전송 컨트롤러를 거쳐 상기 백엔드 프로세서로 전송하도록 제어하는 하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
- 제16항에 있어서,
상기 DMA 컨트롤러가 판독된 데이터를 수신하며, 이를 상기 전송 버퍼로 발송하는 단계는 구체적으로,
상기 DMA 컨트롤러가 상기 데이터가 단일 프레임 또는 멀티 프레임 방식에 따라 전송되도록 제어는 단계를 포함하는 것을 특징으로 하는 방법.
- 제17항에 있어서,
상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 카운터 및 세그먼트 내 어드레싱 장치를 포함하고;
DMA 컨트롤러가 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하는 상기 단계는 구체적으로,
상기 매핑 유닛이 상기 백엔드 프로세서로부터 발송되는 단일 프레임 데이터 전송 요청을 수신하고, 상기 단일 프레임 데이터 전송 요청은 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단계를 포함하고,
대응되게, 상기 DMA 컨트롤러가 상기 데이터가 단일 프레임 방식에 따라 전송되도록 제어하는 단계는 구체적으로,
상기 매핑 유닛이 상기 프레임 시작 주소와 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보와 세그먼트 카운트 정보로 매핑하는 단계;
상기 세그먼트 내 어드레싱 장치가 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제18항에 있어서,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이 될 때까지 수행하는 상기 단계는 구체적으로,
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하며, 상기 세그먼트 카운트 정보 중의 카운트가 0이 될 때까지 수행하는 것 을 특징으로 하는 방법.
- 제17항에 있어서,
상기 DMA 컨트롤러는 매핑 유닛, 세그먼트 내 어드레싱 장치, 세그먼트 카운터 및 프레임 카운터를 포함하고;
상기 DMA 컨트롤러가 백엔드 프로세서로부터 발송되는 데이터 전송 요청을 수신하는 단계는 구체적으로,
상기 매핑 유닛이 상기 백엔드 프로세서로부터 발송되는 멀티 프레임 데이터 전송 요청을 수신하되, 상기 멀티 프레임 데이터 전송 요청은 프레임 수량, 프레임 시작 주소 및 프레임 길이 정보를 포함하는 단계를 포함하고,
상기 DMA 컨트롤러가 상기 데이터가 멀티 프레임 방식에 따라 전송되도록 제어하는 단계는 구체적으로,
상기 매핑 유닛이 상기 프레임 수량, 상기 프레임 시작 주소 및 상기 프레임 길이 정보를 세그먼트 내 어드레싱 정보, 세그먼트 카운트 정보 및 프레임 카운트 정보로 매핑하는 단계;
상기 세그먼트 내 어드레싱 장치가 상기 DMA 컨트롤러로부터 발송된 데이터를 기초로 상기 세그먼트 내 어드레싱 정보를 업데이트하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱이 최대값에 도달하면, 상기 세그먼트 카운터로 세그먼트 카운트 업데이트 정보를 발송하고, 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고, 상기 세그먼트 카운트 정보 중의 카운트를 최대값으로 설정하고, 다음 프레임의 세그먼트 카운팅을 수행하는 단계;
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제20항에 있어서,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 세그먼트 내 어드레싱 초기값으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하는 단계는 구체적으로,
상기 세그먼트 내 어드레싱 장치가 상기 세그먼트 내 어드레싱 정보 중의 세그먼트 내 어드레싱을 0으로 설정하여, 다음 세그먼트의 세그먼트 내 어드레싱을 수행하고;
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 세그먼트 카운트 초기값이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하는 단계는 구체적으로,
상기 세그먼트 카운터가 상기 세그먼트 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하고, 상기 세그먼트 카운트 정보 중의 카운트가 0이면, 상기 프레임 카운터로 프레임 카운트 업데이트 정보를 발송하고;
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 빼기 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 프레임 카운트 초기값이 될 때까지 수행하는 상기 단계는,
상기 프레임 카운터가 프레임 카운트 업데이트 정보를 수신하면 1을 빼는 카운팅을 수행하며, 상기 프레임 카운트 정보 중의 카운트가 0이 될 때까지 수행하는 것을 특징으로 하는 방법.
- 제16항에 있어서,
상기 전송 스케줄러는 입구 스케줄러와 출구 스케줄러를 포함하고;
상기 전송 스케줄러가 복수의 상기 전송 버퍼가 상기 DMA 컨트롤러로부터 발송된 데이터를 기록하도록 제어하고, 및 복수의 상기 전송 버퍼가 데이터를 판독하도록 제어하는 단계는 구체적으로,
상기 입구 스케줄러가 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하는 단계;
상기 출구 스케줄러가 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 단계를 포함하는 것을 특징으로 하는 방법. - 제22항에 있어서,
상기 입구 스케줄링 상태는 아이들 상태와 복수의 전송 버퍼 기록 상태를 포함하고;
상기 입구 스케줄러가 입구 스케줄링 상태와 기록 토큰 정보를 기초로 기록 권한을 가진 전송 버퍼가 데이터를 기록하도록 제어하는 단계는 구체적으로,
상기 입구 스케줄링 상태가 아이들 상태이고 상기 기록 토큰 정보가 어느 기록 토큰 정보이면, 상기 아이들 상태를 상기 어느 기록 토큰 정보에 대응되는 전송 버퍼 기록 상태로 점핑하도록 제어하고, 해당 전송 버퍼가 데이터를 기록하도록 제어하는 단계를 포함하는 것을 특징으로 하는 방법. - 제23항에 있어서,
해당 전송 버퍼가 데이터를 기록하도록 제어하는 상기 단계 후에,
현재 전송 버퍼가 기록한 데이터가 제1 기설정 길이값에 도달하면, 현재 전송 버퍼 기록 상태를 아이들 상태로 업데이트하고, 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제24항에 있어서,
상기 현재 기록 토큰 정보를 다른 기록 토큰 정보로 업데이트하는 단계는,
상기 입구 스케줄러가 각각의 전송 버퍼 기록 대기 시간을 기초로 기록 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 기록 토큰 정보를 기록 대기 시간이 가장 긴 전송 버퍼 기록 토큰 정보로 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제22항에 있어서,
상기 출구 스케줄링 상태는 전송 컨트롤러 검출 상태, 전송 버퍼 검출 상태, 복수의 전송 버퍼 판독 상태를 포함하고;
상기 출구 스케줄러가 출구 스케줄링 상태 및 판독 토큰 정보를 기초로 판독 권한을 가진 전송 버퍼가 데이터를 판독하도록 제어하는 단계는 구체적으로,
상기 출구 스케줄링 상태가 전송 컨트롤러 검출 상태이고 상기 판독 토큰 정보가 어느 판독 토큰 정보이면, 상기 전송 컨트롤러가 검출 후 상기 전송 컨트롤러 검출 상태를 상기 전송 버퍼 검출 상태로 점핑하도록 제어하고, 상기 전송 버퍼가 검출 후 상기 전송 버퍼 검출 상태를 상기 어느 판독 토큰 정보에 대응되는 전송 버퍼 판독 상태로 점핑하도록 제어하고, 해당 전송 버퍼로부터 데이터를 판독하도록 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제26항에 있어서,
해당 전송 버퍼로부터 데이터를 판독하도록 제어하는 상기 단계 후에,
현재 전송 컨트롤러가 판독한 데이터가 제2 기설정 길이값에 도달하면, 상기 현재 전송 버퍼 판독 상태를 상기 인터페이스 버퍼 검출 상태로 업데이트하고, 상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제27항에 있어서,
상기 현재 판독 토큰 정보를 다른 판독 토큰 정보로 업데이트하는 상기 단계는 구체적으로,
상기 출구 스케줄러가 각각의 전송 버퍼 판독 대기 시간을 기초로 판독 대기 시간이 가장 긴 전송 버퍼를 결정하고, 상기 현재 판독 토큰 정보를 판독 대기 시간이 가장 긴 전송 버퍼 판독 토큰 정보로 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제16항에 있어서,
상기 전송 컨트롤러는 멀티 데이터 버퍼 영역, 전송 프로세서 및 직렬 통신 엔진을 포함하고;
상기 방법은,
상기 멀티 데이터 버퍼 영역에서 상기 데이터에 대해 캐싱하는 단계;
상기 전송 프로세서가 상기 멀티 데이터 버퍼 영역 중의 데이터를 상기 직렬 통신 엔진으로 발송하는 단계;
상기 직렬 통신 엔진이 상기 전송 프로세서로부터 발송되는 데이터를 수신하고, 상기 데이터를 백엔드 프로세서로 발송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제16항에 있어서,
상기 백엔드 프로세서는 멀티 코어 CPU를 포함하고;
상기 방법은,
상기 멀티 코어 CPU가 병행 방식으로 데이터를 백엔드 메모리로 발송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 프로세서에 의해 실행되어 제16 항 내지 제30항 중 어느 하나에 따른 방법을 구현하는 컴퓨터 프로그램이 저장되어 있는 것을 특징으로 하는 컴퓨터 판독 가능 저장매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019102373733 | 2019-03-27 | ||
CN201910237373.3A CN110008156B (zh) | 2019-03-27 | 2019-03-27 | 数据传输的装置、方法及可读存储介质 |
PCT/CN2020/071106 WO2020192242A1 (zh) | 2019-03-27 | 2020-01-09 | 数据传输的装置、方法及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210134965A true KR20210134965A (ko) | 2021-11-11 |
KR102710100B1 KR102710100B1 (ko) | 2024-09-25 |
Family
ID=67168369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217032016A KR102710100B1 (ko) | 2019-03-27 | 2020-01-09 | 데이터 전송 장치, 방법 및 판독 가능 저장매체 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11803490B2 (ko) |
EP (1) | EP3951605B1 (ko) |
JP (1) | JP7236173B2 (ko) |
KR (1) | KR102710100B1 (ko) |
CN (1) | CN110008156B (ko) |
AU (1) | AU2020249861B2 (ko) |
BR (1) | BR112021019106A2 (ko) |
CA (1) | CA3134888A1 (ko) |
MX (1) | MX2021011705A (ko) |
WO (1) | WO2020192242A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008156B (zh) | 2019-03-27 | 2020-12-15 | 无锡海斯凯尔医学技术有限公司 | 数据传输的装置、方法及可读存储介质 |
CN111401541A (zh) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | 一种数据传输控制方法及装置 |
CN117112465B (zh) * | 2023-10-16 | 2024-10-15 | 北京象帝先计算技术有限公司 | Dma调度器及方法、片上系统、电子组件及设备 |
CN118069067B (zh) * | 2024-04-16 | 2024-08-13 | 泉州华中科技大学智能制造研究院 | 基于无主从TCP通信的Nor Flash数据存储方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668022A (ja) * | 1992-08-18 | 1994-03-11 | Oki Electric Ind Co Ltd | ダイレクトメモリアクセス装置 |
JPH0798684A (ja) * | 1993-08-03 | 1995-04-11 | Seiko Epson Corp | データ転送制御装置及び情報処理装置 |
JP2003345774A (ja) * | 2002-05-23 | 2003-12-05 | Renesas Technology Corp | 半導体集積回路装置 |
JP2006099358A (ja) * | 2004-09-29 | 2006-04-13 | Kyocera Mita Corp | Dma転送制御システム |
KR101349899B1 (ko) * | 2012-03-16 | 2014-01-14 | 한국과학기술원 | 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 |
US10120586B1 (en) * | 2007-11-16 | 2018-11-06 | Bitmicro, Llc | Memory transaction with reduced latency |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11327874A (ja) * | 1998-05-08 | 1999-11-30 | Tamura Electric Works Ltd | データ送受信装置 |
CN100533417C (zh) * | 2006-12-30 | 2009-08-26 | 大唐微电子技术有限公司 | 片上系统的数据传输方法及直接存储器访问控制器 |
US7805579B2 (en) * | 2007-07-31 | 2010-09-28 | International Business Machines Corporation | Methods and arrangements for multi-buffering data |
JP2009147786A (ja) * | 2007-12-17 | 2009-07-02 | Nec Corp | 通信装置、データフレームの送信制御方法及びプログラム |
CN101556564B (zh) | 2008-04-11 | 2011-08-24 | 联芯科技有限公司 | 数据接收/发送方法和装置 |
US8234478B1 (en) * | 2008-10-22 | 2012-07-31 | Nvidia Corporation | Using a data cache array as a DRAM load/store buffer |
CN101777031B (zh) * | 2009-01-14 | 2012-02-08 | 中兴通讯股份有限公司 | 直接存储器存取控制器以及数据传输方法 |
AU2011370439B2 (en) | 2011-10-27 | 2015-12-03 | Huawei Technologies Co., Ltd. | Method and apparatus for rapid data distribution |
CN102546098B (zh) | 2011-12-15 | 2015-01-21 | 福建星网锐捷网络有限公司 | 数据传输装置、方法及系统 |
CN203773954U (zh) | 2014-03-21 | 2014-08-13 | 漯河医学高等专科学校 | 一种计算机互联数据传输存储器 |
CN105335306B (zh) * | 2014-06-30 | 2018-02-13 | 华为技术有限公司 | 一种内存控制方法和装置 |
CN105138470A (zh) * | 2015-08-31 | 2015-12-09 | 浪潮集团有限公司 | 一种多通道nand flash控制器 |
US20170177352A1 (en) | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Store Operations |
KR20180062247A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 효율적인 버퍼 할당을 수행하는 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10489297B2 (en) * | 2017-02-22 | 2019-11-26 | Intel Corporation | Prefetching time allocation |
CN108228498B (zh) * | 2017-12-21 | 2020-12-15 | 深圳开阳电子股份有限公司 | 一种dma控制装置和图像处理器 |
RU2705421C1 (ru) | 2018-12-25 | 2019-11-07 | Общество с ограниченной ответственностью "ТЕКОН Микропроцессорные технологии" | Способ передачи данных по шине, система связи для осуществления данного способа и устройство автоматической защиты для предотвращения аварийной ситуации на объекте управления |
CN110008156B (zh) * | 2019-03-27 | 2020-12-15 | 无锡海斯凯尔医学技术有限公司 | 数据传输的装置、方法及可读存储介质 |
-
2019
- 2019-03-27 CN CN201910237373.3A patent/CN110008156B/zh active Active
-
2020
- 2020-01-09 BR BR112021019106A patent/BR112021019106A2/pt unknown
- 2020-01-09 KR KR1020217032016A patent/KR102710100B1/ko active IP Right Grant
- 2020-01-09 WO PCT/CN2020/071106 patent/WO2020192242A1/zh unknown
- 2020-01-09 MX MX2021011705A patent/MX2021011705A/es unknown
- 2020-01-09 CA CA3134888A patent/CA3134888A1/en active Pending
- 2020-01-09 AU AU2020249861A patent/AU2020249861B2/en active Active
- 2020-01-09 EP EP20777660.0A patent/EP3951605B1/en active Active
- 2020-01-09 JP JP2021557437A patent/JP7236173B2/ja active Active
-
2021
- 2021-09-24 US US17/485,191 patent/US11803490B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668022A (ja) * | 1992-08-18 | 1994-03-11 | Oki Electric Ind Co Ltd | ダイレクトメモリアクセス装置 |
JPH0798684A (ja) * | 1993-08-03 | 1995-04-11 | Seiko Epson Corp | データ転送制御装置及び情報処理装置 |
JP2003345774A (ja) * | 2002-05-23 | 2003-12-05 | Renesas Technology Corp | 半導体集積回路装置 |
JP2006099358A (ja) * | 2004-09-29 | 2006-04-13 | Kyocera Mita Corp | Dma転送制御システム |
US10120586B1 (en) * | 2007-11-16 | 2018-11-06 | Bitmicro, Llc | Memory transaction with reduced latency |
KR101349899B1 (ko) * | 2012-03-16 | 2014-01-14 | 한국과학기술원 | 메모리 제어기 및 이의 메모리 접근 스케줄링 방법 |
Also Published As
Publication number | Publication date |
---|---|
BR112021019106A2 (pt) | 2021-11-30 |
EP3951605A4 (en) | 2022-11-30 |
KR102710100B1 (ko) | 2024-09-25 |
JP2022527907A (ja) | 2022-06-07 |
JP7236173B2 (ja) | 2023-03-09 |
AU2020249861A1 (en) | 2021-10-28 |
CN110008156A (zh) | 2019-07-12 |
CN110008156B (zh) | 2020-12-15 |
US11803490B2 (en) | 2023-10-31 |
US20220012194A1 (en) | 2022-01-13 |
WO2020192242A1 (zh) | 2020-10-01 |
CA3134888A1 (en) | 2020-10-01 |
EP3951605A1 (en) | 2022-02-09 |
AU2020249861B2 (en) | 2023-09-21 |
EP3951605B1 (en) | 2024-06-05 |
MX2021011705A (es) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210134965A (ko) | 데이터 전송 장치, 방법 및 판독 가능 저장매체 | |
CN100440184C (zh) | 一种能同时进行读写操作的dma控制器及传输方法 | |
US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
CN111857559B (zh) | 用于管理元数据的方法、装置和计算机程序产品 | |
CN103631624A (zh) | 读写请求的处理方法和装置 | |
JP2006513493A5 (ko) | ||
US20050257012A1 (en) | Storage device flow control | |
CN114730276A (zh) | 确定多核处理器复合体中每个核心的最佳线程数量 | |
US20190272238A1 (en) | Determining memory access categories for tasks coded in a computer program | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
CN109032821B (zh) | 自动驾驶主题消息处理方法、装置、设备及存储介质 | |
KR20050076702A (ko) | 멀티프로세서 시스템에서의 데이터 전송 방법과, 그방법을 수행하는 멀티프로세서 및 프로세서 | |
US20160085683A1 (en) | Data receiving device and data receiving method | |
JP3317873B2 (ja) | データ転送制御装置 | |
CN107209738B (zh) | 储存存储器直接访问 | |
CN105659216A (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
CN105637483B (zh) | 线程迁移方法、装置和系统 | |
US8966133B2 (en) | Determining a mapping mode for a DMA data transfer | |
EP2902910A1 (en) | Electronic device, and method for accessing data in electronic device | |
CN101950277B (zh) | 用于微控制单元的数据传输方法与装置以及数据传输系统 | |
WO2015105250A1 (en) | Method for processing data in storage device and storage device | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
JP3674207B2 (ja) | 半二重通信システムにおける周辺機器及びバッファ制御方法 | |
CN103460183B (zh) | 控制vles处理器架构内的提前提取的方法和装置 | |
CN117055815A (zh) | 缓存数据管理方法、装置、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |