KR102520983B1 - 이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇 - Google Patents

이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇 Download PDF

Info

Publication number
KR102520983B1
KR102520983B1 KR1020217007640A KR20217007640A KR102520983B1 KR 102520983 B1 KR102520983 B1 KR 102520983B1 KR 1020217007640 A KR1020217007640 A KR 1020217007640A KR 20217007640 A KR20217007640 A KR 20217007640A KR 102520983 B1 KR102520983 B1 KR 102520983B1
Authority
KR
South Korea
Prior art keywords
burst
state
binarization
state machine
write
Prior art date
Application number
KR1020217007640A
Other languages
English (en)
Other versions
KR20210042978A (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 아미크로 세미컨덕터 씨오., 엘티디.
Publication of KR20210042978A publication Critical patent/KR20210042978A/ko
Application granted granted Critical
Publication of KR102520983B1 publication Critical patent/KR102520983B1/ko

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 이진화 알고리즘을 기반으로 하는 액셀러레이션 제어 시스템, 칩 및 로봇에 관한 것으로, AHB 버스를 통해 외부의 이미지 메모리에 대하여 판독 및 기입할 수 있다. 상기 액셀러레이션 제어 시스템은 메인 제어 모듈, 이진화 모듈 및 이진화 FIFO 모듈을 포함하며, 메인 제어 모듈은 메인 상태 머신이 버스트 판독 모드 상태인 경우, 인터페이스 제어 상태 머신을 통해 AHB 버스를 제어하여 상기 이미지 메모리 내의 처리대상인 픽셀 데이터를 판독하고, AHB 버스에 내의 현재 픽셀 데이터를 제어하여 이진화 모듈로 버스트 전송하여 처리하도록 하며, 이와 동시에, 버스트 판독 상태 머신을 통해 이진화 FIFO 모듈을 제어함으로써, 이진화 모듈 내의 직전의 버스트 전송된 픽셀 데이터의 처리를 통해 얻은 이진화 데이터를 판독하여, 상기 이미지 메모리 내에 저장된 모든 픽셀 데이터가 처리될 때까지 상기 액셀러레이션 제어 시스템이 파이프 라인의 작동 방법으로 이진화의 처리 속도를 가속화 하고, CPU에 인터럽트를 전송하도록 지시한다.

Description

이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇
본 발명은 하드웨어 액셀러레이션 장치 분야에 관한 것으로, 특히 이진화 알고리즘을 기반으로 하는 액셀러레이션 제어 시스템, 칩 및 로봇에 관한 것이다.
현재, 로봇 청소기가 지도 작성 및 포지셔닝에 VSLAM을 적용하는 경우, 수집된 이미지 데이터를 소프트웨어에서 사용하기 전에 사전 처리해야 한다. 여기서, 이진화 연산이라는 처리 알고리즘이 있다. 이진화 연산은 이미지를 그레이 스케일 이미지로 변환하여 가장자리 효과를 높이는 이미지 처리 방법으로, 이미지 처리에 널리 사용된다. 소프트웨어가 이미지에 대해 이진화 연산 처리를 수행 시, 이미지 데이터에 대해 판독, 처리한 다음 라이트-백(write-back)하는 동작을 수행한다. 기존 기술의 시스템 온 칩에서, CPU는 액세스 명령을 발신하고, AHB 버스를 통해 메모리가 위치한 공간을 찾아 메모리에 액세스 한다. 액세스에 성공하면 메모리는 AHB 버스에 성공적인 응답 신호를 보내고, 동시에 다른 CPU가 얻고자 하는 데이터를 보내며, AHB 버스는 이러한 신호를 다시 CPU로 전달하여 하나의 명령 동작을 완료한다. 그러나, CPU 로직의 유닛은 모두 표준 타이밍 또는 조합 요소이기 때문에, 이들의 플립 속도는 매우 빠르며 메모리의 하나의 저장 유닛은 늘 조합 논리 더미에 의해야만 실현되므로, 이들에 대한 액세스는 복수 개의 클럭 주기를 거쳐야 응답을 얻을 수 있어, CPU의 작동 효율이 크게 저하된다. 따라서, 상술한 이미지 픽셀의 반복적인 판독과 기입, 이진화 처리 과정에서, CPU 개입을 통해 이진화 데이터의 처리 및 전송을 완료하는 것은 소프트웨어 자원을 매우 많이 소비하게 되며, 다른 모듈의 CPU 작업 시간을 차지하여 다른 모듈의 작업 속도에 영향을 미치게 된다. 특히, 대량의 이미지 처리를 수행하는 경우, CPU의 작업 부하를 크게 증가시키고 칩의 전체적인 성능에 심각한 영향을 미치게 된다.
본 발명은 이진화 알고리즘을 기반으로 하는 액셀러레이션 제어 시스템을 제공하는 것을 그 목적으로 하며, 상기 액셀러레이션 제어 시스템은 AHB 버스를 통해 외부 이미지 메모리에 대하여 판독(read) 및 기입(write)하도록 구성되며, 상기 액셀러레이션 제어 시스템은 또한 메인 제어 모듈, 이진화 모듈과 FIFO 모듈을 포함하고, 이진화 모듈은 상기 이미지 메모리에서 버스트 전송된 픽셀 데이터를 수신하고 이진화 처리한 다음, 처리된 이진화 데이터를 이진화 FIFO 모듈로 전송하며, 상기 이미지 메모리에 저장된 이미지의 모든 픽셀 데이터가 처리 완료되면, CPU로 인터럽트 명령을 전송하도록 상기 액셀러레이션 제어 시스템에 알리며; 메인 제어 모듈은 메인 상태 머신, 버스트 판독(burst read) 상태 머신, 버스트 기입(burst write) 상태 머신 및 인터페이스 제어 상태 머신을 포함하고, 메인 제어 모듈은 메인 상태 머신이 버스트 판독 모드 상태인 경우,인터페이스 제어 상태 머신을 통해 AHB 버스를 제어하여 상기 이미지 메모리 내의 처리대상인 픽셀 데이터를 판독하며, AHB 버스 내의 현재 픽셀 데이터를 이진화 모듈로 버스트 전송하여 처리하도록 함과 동시에, 버스트 판독 상태 머신을 통해 이진화 FIFO 모듈을 제어하여 이진화 모듈 내의 직전의 버스트 전송을 기반으로 한 픽셀 데이터 처리를 통해 얻은 이진화 데이터를 판독하도록 하여, 상기 액셀러레이션 제어 시스템이 메인 상태 머신의 제어하에 파이프 라인의 작동 방법으로 이진화의 처리 속도를 가속화하도록 하며; 메인 제어 모듈은 메인 상태 머신이 버스트 기입 모드 상태 인 경우에, 버스트 기입 상태 머신을 통해 이진화 FIFO 모듈에 저장된 이진화 데이터를 AHB 버스에 기록하고, 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 이진화 데이터를 상기 이미지 메모리에 라이트-백(write-back)한다.
나아가, 상기 메인 상태 머신은 버스트 판독 모드 상태에서 상기 버스트 판독 상태 머신을 초기 상태로부터 버스트 판독 작업 상태에 진입하도록 활성화 시키며, AHB 버스를 통해 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터를 버스트 판독하고, AHB 버스 내의 상기 픽셀 데이터가 상기 이진화 모듈로 버스트 전송되도록 제어함과 동시에, 상기 버스트 판독 상태 머신을 통해 상기 이진화 FIFO 모듈이 상기 이진화 모듈에서 처리된 상기 이진화 데이터를 버스트 판독하도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈에 완전히 저장될 때까지, 상기 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 버스트 판독된 다음의 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈로 버스트 전송하여 처리되도록 제어하고, 하나의 버스트 전송 길이의 상기 이진화 데이터가 이미 상기 이진화 FIFO 모듈에 완전히 저장되면, 버스트 판독 모드 대기 상태로 진입하며; 상기 메인 상태 머신은 버스트 판독 모드 대기 상태에서 AHB 버스가 상기 이진화 FIFO 모듈에 버스트 기입할 준비가 될 때까지 대기하며, 해당 상태가 하나의 클럭 주기동안 지속되면, 버스트 판독 모드 대기 상태로부터 버스트 기입 모드 상태로 점프하며; 상기 메인 상태 머신은 버스트 기입 모드 상태에서 상기 버스트 기입 상태 머신을 초기 상태로부터 버스트 기입 작업 상태에 진입하도록 활성화 시킴으로써, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈로부터 AHB 버스로 버스트 라이트-아웃(write-out)되도록 제어하며, 동시에 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 라이트-백(write-back)되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 완전히 기입되지 않으면, 상기 버스트 기입 상태 머신을 통해 상기 이진화 FIFO 모듈 내의 다음의 버스트 전송 길이의 상기 이진화 데이터가 AHB 버스에 버스트 전송되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 완전히 기입되면, 버스트 기입 모드 상태로부터 버스트 기입 모드 대기 상태로 진입하며; 상기 메인 상태 머신은 버스트 기입 모드 대기 상태에서 상기 이진화 FIFO 모듈 내의 상기 이진화 데이터의 개수에 따라 상기 이미지 메모리의 상기 픽셀 데이터가 모두 처리되었는지를 판단하며, 그러한 경우, 버스트 기입 모드 대기 상태로부터 종료 상태로 진입하고, 그러하지 않은 경우, 버스트 판독 모드 상태로 진입하며; 여기서, 상기 이진화 FIFO 모듈의 깊이는 상기 버스트 전송 길이와 동일하며, 상기 버스트 전송 길이는 매번 버스트 전송된 데이터의 개수에 해당되고, 버스트 판독 모드 상태와 버스트 기입 모드 상태에서 동일하다.
나아가, 상기 버스트 판독 상태 머신은 상기 버스트 판독 작업 상태에서 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈로 완전히 버스트 판독되도록 함과 동시에, 상기 이진화 모듈 내에서 버스트 전송된 상기 픽셀 데이터에 대해 이진화 처리를 수행하고 해당 처리에 의해 얻은 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 전송되도록 하며, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이진화 FIFO 모듈로 전송되기 시작할 때, 버스트 판독 완료 상태로 진입하고; 상기 버스트 판독 상태 머신은 버스트 판독 완료 상태에서 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 전송되면, 버스트 판독 대기 상태로 진입하여 상기 인터페이스 준비 신호가 높게 설정되어 상기 초기 상태로 돌아가기를 대기하며; 상기 버스트 기입 상태 머신은 상기 버스트 기입 작업 상태에서 상기 이진화 FIFO 모듈을 제어하여 하나의 버스트 전송 길이의 상기 이진화 데이터가 AHB 버스로 버스트 라이트-백(write-back)되도록 함과 동시에, 상기 이진화 데이터가 AHB 버스로부터 상기 이미지 메모리에 전송되어 기입되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이미지 메모리로 전송되기 시작할 때, 버스트 기입 완료 상태로 진입하며; 상기 버스트 기입 상태 머신은 버스트 기입 완료 상태에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이미지 메모리로 버스트 라이트-백되면, 버스트 기입 대기 상태로 진입하여 상기 인터페이스 준비 신호가 높게 설정되어 상기 초기 상태로 돌아갈 때까지 대기한다.
나아가, 상기 인터페이스 제어 상태 머신은 초기 상태에서 전송을 대기하며, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태로 진입하거나, 또는 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태로 진입하고, 상기 이미지 메모리가 상기 인터페이스 준비 신호를 통해 버스트 판독 및 기입 준비를 지시하는 경우, 불연속 전송 상태로 진입하며; 상기 인터페이스 제어 상태 머신은 불연속 전송 상태에서, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태하에 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 완전히 버스트 판독하지 않은 경우, 또는, 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태하에 AHB 버스가 하나의 버스트 전송 길이의 상기 이진화 데이터를 완전히 상기 이미지 메모리에 버스트 기입하는 것을 간접적으로 제어하지 않은 경우, 연속 전송 상태로 진입하며; 상기 인터페이스 제어 상태 머신은 불연속 전송 상태에서, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태하에 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 완전히 버스트 판독한 경우, 또는, 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태하에 AHB 버스가 하나의 버스트 전송 길이의 상기 이진화 데이터를 완전히 상기 이미지 메모리에 버스트 기입하는 것을 간접적으로 제어한 경우, 상기 초기 상태로 진입하며; 상기 인터페이스 제어 상태 머신은 상기 연속 전송 상태에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 버스트 판독된 경우, 또는 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이미지 메모리에 버스트 기입된 경우, 상기 초기 상태로 진입한다.
나아가, 상기 액셀러레이션 제어 시스템에는AHB 버스의 버스트 전송을 위한 판독 및 기입 레지스터 그룹이 구비되며, 판독 레지스터는 상기 이미지 메모리에서 버스트 전송된 상기 픽셀 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜의 버스트 판독 명령 정보를 저장하며; 기입 레지스터는 상기 이진화 모듈에 의해 버스트 전송된 상기 이진화 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜의 버스트 기입 명령 정보를 저장하며; 상기 판독 및 기입 레지스터 그룹은 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB프로토콜을 기반으로 하는 버스트 명령 정보에 따라 판독 및 기입 동작을 수행하며; 버스트 판독 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 판독 명령 정보에 따라 상기 판독 레지스터가 상기 픽셀 데이터를 리드-인(read-in)할 것인지 리드-아웃(read-out)할 것인지를 선택하며; 버스트 기입 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 기입 명령 정보에 따라 상기 기입 레지스터가 상기 이진화 데이터를 라이트-인(write-in)할 것인지 라이트-아웃(write-out)할 것인지를 선택한다.
나아가, 상기 액셀러레이션 제어 시스템은 또한 인터럽트 레지스터를 구비하며, 상기 이미지 메모리 내에 저장된 이미지의 모든 픽셀 데이터가 이진화 처리된 후에, 상기 이미지 메모리 내의 해당 주소 유닛에서 상기 이진화 데이터를 모두 추출하도록 CPU에 알리며, 소프트웨어 처리를 수행한다.
본 발명은 칩을 개시하며, 상기 칩은 이미지 처리 칩이고, 그 내부 구조는 이미지 픽셀 데이터의 이진화 처리 과정을 가속화하기 위한 액셀러레이션 제어 시스템을 포함한다.
본 발명은 로봇을 개시하며, 상기 로봇은 모바일 비전 로봇으로, 그 내부에는 상기 이미지 처리 칩이 내장된다.
본 발명 실시예의 유익한 효과는 이미지 데이터의 판독, 처리 및 라이트-아웃(write-out)이 완전히 하드웨어 회로에 의해 실현되며, 하드웨어 형태로 전술한 이미지 데이터의 데이터 판독, 데이터 연산과 데이터 라이트-백(write-back)을 실현하며, 이러한 동작은 소프트웨어가 전 과정에 참여할 필요가 없고, CPU 가 연산 시작시 정보 배치를 수행하고 연산이 완료될 때 처리를 중단하면 된다. 따라서, 하드웨어 형태로 이진화 알고리즘을 구현하여, CPU는 여유가 생기게 되어 소프트웨어 효율을 크게 향상시킬 수 있다.
본 발명의 다른 구체적이고 바람직한 측면은 청구범위의 독립항 및 종속항에 의해 개시된다. 종속 청구항의 특징은 독립 청구항의 특징과 청구항에 명시적으로 언급된 것과 같은 결합 형태와 다르게 결합될 수 있다.
도 1은 본 발명의 실시예에 따른 이진화 알고리즘에 기반한 액셀러레이션 제어 시스템 프레임 워크의 개략도이다.
도 2는 본 발명의 실시예에 의해 제공되는 메인 제어 모듈 내부의 메인 상태 머신의 상태 변환 개략도이다.
도 3은 본 발명의 실시예에 의해 제공되는 메인 제어 모듈 내부의 버스트 판독 상태 머신의 상태 변환 개략도이다.
도 4는 본 발명의 실시예에 의해 제공되는 메인 제어 모듈 내부의 버스트 기입 상태 머신의 상태 변환 개략도이다.
도 5는 본 발명의 실시예에 의해 제공되는 메인 제어 모듈 내부의 인터페이스 제어 상태 머신의 상태 변환 개략도이다.
본 발명의 실시예에 의해 언급된 각 모듈 및 상태 머신은 모두 논리 회로이며, 실제 응용에서 하나의 논리 회로는 하나의 물리적 유닛 또는 물리적 유닛의 일부 또는 복수 개의 물리적 유닛의 조합 일 수 있다. 또한, 본 발명의 혁신적인 부분을 강조하기 위해, 본 발명의 실시예는 본 발명의 기술적 과제를 해결하는 것과 밀접하게 관련되지 않은 유닛은 개시하지 않았지만, 이는 본 발명의 실시예에 다른 유닛이 존재하지 않음을 의미하지는 않는다.
본 발명의 실시예는 이진화 알고리즘에 기반한 액셀러레이션 제어 시스템을 제공하며, 상기 액셀러레이션 제어 시스템은 AHB 버스를 통해 외부 이미지 메모리를 판독하고 기입하며, 이미지 메모리 내의 픽셀 데이터에 대해 이진화 컴퓨팅 처리를 수행한다. 집적 회로에 적용되는 하드웨어 가속 처리 시스템으로서, 소프트웨어 처리에 비해, 상기 액셀러레이션 제어 시스템은 이미지 처리의 속도를 높이고 CPU 대역폭을 절약하며 소프트웨어 자원의 소모를 감소시킬 수 있다. 상기 액셀러레이션 제어 시스템은 또한 메인 제어 모듈, 이진화 모듈, 이진화 FIFO 모듈 및 앞서 언급한 모듈이 장착된 AHB 버스를 포함한다. 상기 액셀러레이션 제어 시스템에서 AHB 버스를 기반으로 하는 인터페이스 타이밍은 AMB AHB 프로토콜을 준수해야 된다.
상기 액셀러레이션 제어 시스템이 상기 픽셀 데이터의 판독, 기입 및 이진화 처리를 수행하기 전에, CPU는 상기 이미지 메모리에 저장된 하나의 이미지의 주소와 픽셀 해상도 크기를 미리 구성해야 하며, 그 픽셀 크기의 범위는 최소 1X1, 최대 1024X1024로, 매트릭스 형태로 저장 매체에 저장되며, 본 발명의 구현에서 상기 이미지 메모리는 SOC 칩 상의 SRAM 또는 SOC 칩 외부의 DDR이다. 또한, CPU는 이진화의 처리 모드 및 이진화 결과가 상기 이미지 메모리 내에서의 목표 저장 주소를 설정한다. 상기 액셀러레이션 제어 시스템에 의해 지정된 버스트 전송 길이는 매번 버스트 전송되는 데이터의 개수이며, 본 발명의 실시예에서는 16으로 설정되었으나, 상기 이미지 메모리 내에 실제로 처리대상인 픽셀 데이터에 따라, 버스트 전송 길이가 8, 4, 2 또는 1로 설정될 수 도 있음을 배제하지 않는다. 또한, 이는 버스트 판독 모드 상태와 버스트 기입 모드 상태에서 동일하며, 상기 이진화 FIFO 모듈의 깊이 크기는 16이다.
본 발명의 일 실시예로서, 도 1에 도시된 바와 같이, 상기 이진화 모듈은 이진화 로직 회로와 레지스터를 포함하고, 상기 이진화 모듈은 상기 메인 제어 모듈의 제어 작용하에, AHB 버스를 통해 상기 이미지 메모리 내의 픽셀 데이터를 버스트 판독하여 이진화 로직 회로로 전송하며, 이진화 로직 회로에서 상기 이미지 메모리 중 버스트 전송된 픽셀 데이터에 대해 이진화 처리를 수행한다. 즉, 그 내부에 사전 설정된 임계값과 비교하여 대응하는 이진화 데이터를 얻은 다음, 레지스터를 통해 상기 이진화 FIFO 모듈로 전송하며, 상기 이미지 메모리에 저장된 이미지의 모든 픽셀 데이터가 처리 완료 될 때, 상기 액셀러레이션 제어 시스템에게 CPU에 인터럽트 명령을 보내도록 알린다.
본 발명 실시예의 상기 메인 제어 모듈에는 메인 상태 머신, 버스트 판독 상태 머신, 버스트 기입 상태 머신 및 인터페이스 제어 상태 머신의 4 개의 상태 머신이 구비된다. 메인 상태 머신의 제어하에, 상기 메인 제어 모듈은 상기 이미지 메모리 중의 상기 픽셀 데이터를 판독 및 이진화 처리함과 동시에, 상기 이진화 데이터를 상기 이미지 메모리에 라이트-백(write-back)한다. 구체적으로, CPU는 인터럽트 활성화 명령을 내리고 시작 플래그 비트 start는 1로 설정되며, 메인 상태 머신은 초기 상태 IDLE에서 버스트 판독 모드 상태 BRD_ST로 점프하고; 메인 상태 머신이 버스트 판독 모드 상태 BRD_ST인 경우, 상기 메인 제어 모듈은 인터페이스 제어 상태 머신의 해석 명령을 통해 AHB 버스를 제어하여 상기 이미지 메모리 내의 처리대상인 픽셀 데이터를 판독하며, AHB 버스 내의 현재 픽셀 데이터가 상기 이진화 모듈로 버스트 전송되어 처리되도록 제어하고; 이와 동시에, 버스트 판독 상태 머신은 판독 제어 신호 B_R를 상기 이진화 FIFO 모듈로 전송하여, 상기 이진화 FIFO 모듈이 이진화 모듈 내의 직전의(하나 전의) 버스트 전송으로 전송된 픽셀 데이터의 처리를 통해 얻은 상기 이진화 데이터를 판독하도록 제어하며, 상기 액셀러레이션 제어 시스템이 복수 개의 상기 버스트 전송 길이의 상기 픽셀 데이터를 동시에 판독 처리하여, 파이프 라인의 작동 구조를 형성하여 이진화의 처리 과정을 가속화 한다. 하나의 클럭 주기의 대기 상태가 경과된 후, 메인 상태 머신은 버스트 기입 모드 상태 BWR_ST로 점프한다. 버스트 기입 모드 상태 BWR_ST에서, 버스트 기입 상태 머신은 기입 제어 신호 B_W를 상기 이진화 FIFO 모듈에 전송하여 상기 이진화 FIFO 모듈 내에 저장된 상기 이진화 데이터가 AHB버스에 기입되도록 제어한다. 이와 동시에, 상기 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 상기 이진화 데이터가 상기 이미지 메모리에 라이트-백(write-back)되도록 제어함으로써, 상기 이진화 데이터의 판독 및 기입 과정을 가속화 한다.
구체적으로, 상기 메인 제어 모듈에서 그 내부에 포함된 상태 머신 액세스는 액세스 요청, 액세스 응답 및 액세스 종료의 3 단계 구조의 액세스 모드를 포함한다. 상태 머신 액세스는 선착순 원칙을 적용하며, 일단 다른 액세스를 점용하게 되면 차단된다. 상기 메인 상태 머신은 기타 3개의 상태 머신을 제어하므로, 액세스 요청은 상기 메인 상태 머신에서 송신하며, 이 중 하나의 상태 머신이 액세스 요청을 감지하고 액세스 초기 상태에 있는 경우, 액세스 응답을 제공하며, 상기 메인 상태 머신이 액세스 응답 핸드 셰이크 신호를 감지하면, 상기 상태 머신은 자신의 상태를 활성화하고 해당 상태로 진입하며, 자신의 상태가 점용한 버스트 전송의 클럭 주기에 따라 액세스 종료 명령을 상기 메인 상태 머신으로 전송한다. 상기 메인 상태 머신은 액세스 종료를 감지하면, 이번 액세스를 종료하고 다음 상태로 진입하며, 다음의 상태 머신에 액세스한다. 예를 들면, 버스트 판독 모드 상태에서 버스트 판독 상태 머신을 활성화하는 작동으로부터 버스트 기입 모드 상태하에 버스트 기입 상태 머신을 활성화하는 작동으로 전환된다.
본 발명의 일 실시예로서, 도 1 및 도 2에 도시된 바와 같이, 시작 플래그 비트 start는 1로 설정되고, 상기 메인 상태 머신은 초기 상태 IDLE에서 버스트 판독 모드 상태 BRD_ST로 점프하며; 버스트 판독 모드 상태 BRD_ST에서, 상기 메인 상태 머신은 상기 버스트 판독 상태 머신을 활성화하여 상기 버스트 판독 상태 머신이 초기 상태 IDLE1에서 버스트 판독 작업 상태 BST_RD로 진입한다. 상기 메인 상태 머신은 AHB 버스를 통해 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈로 판독하며, 여기서 버스트 전송 길이는 한번에 16 개 데이터를 버스트 전송하는 것을 나타내며; 동시에, 상기 메인 상태 머신은 버스트 판독 상태 머신을 제어하여 제어 판독 신호 B_R을 송신함으로써, 상기 이진화 FIFO 모듈이 상기 이진화 모듈에 의해 처리되어 얻은 하나의 버스트 전송 길이의 상기 이진화 데이터를 버스트 판독 및 저장하도록 하며, 상기 버스트 전송 길이의 상기 이진화 데이터는 상기 이진화 모듈 내의 직전의 버스트 전송으로 전송된 픽셀 데이터를 처리하여 얻은 이진화 데이터이다. 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈에 완전히 저장될 때까지, 상기 메인 상태 머신은 상기 인터페이스 제어 상태 머신을 통해 AHB버스 내의 상기 이미지 메모리에서 버스트 판독된 그 다음 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈에 전송하여 처리하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 이미 상기 이진화 FIFO 모듈에 완전히 저장되면, 상기 메인 상태 머신은 버스트 판독 모드 상태 BRD_ST에서 버스트 판독 모드 대기 상태 BRD_WAIT로 진입한다. 구체적으로, 상기 이진화 FIFO 모듈의 깊이는 상기 버스트 전송 길이와 동일하다.
버스트 판독 모드 대기 상태 BRD_WAIT에서, 상기 메인 상태 머신은 AHB 버스가 상기 이진화 FIFO 모듈에 버스트 기입할 준비가 될 때까지 대기하며; 상기 메인 상태 머신은 상기 상태에서 AHB버스의 전송을 제어하지 않고, 그대로 하나의 클럭 주기 동안 지속되며, 상기 인터페이스 준비 신호가 높게 되면 AHB 버스가 버스트 기입의 준비가 완료됨을 의미하고, 그 다음 버스트 판독 모드 대기 상태 BRD_WAIT에서 버스트 기입 모드 상태 BWR_ST로 점프한다.
버스트 기입 모드 상태 BWR_ST에서, 상기 메인 상태 머신이 상기 버스트 기입 상태 머신을 활성화하면, 상기 버스트 기입 상태 머신은 초기 상태 IDLE2에서 버스트 기입 작업 상태 BST_WR로 진입하여, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈로부터 AHB 버스로 버스트 라이트-아웃(write-out)되도록 제어함과 동시에, 인터페이스 제어 상태 머신을 통해 AHB 버스에 저장된 직전의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 라이트-백(write-back)되도록 제어한다. 여기서, 버스트 전송 길이는 한번에 16 개 데이터를 버스트 전송함을 의미한다. 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 완전히 기입되지 않으면, 상기 메인 상태 머신은 상기 버스트 기입 상태 머신이 기입 신호 B_W를 발신하도록 제어함으로써, 상기 이진화 FIFO 모듈 내의 다음 버스트 전송 길이의 상기 이진화 데이터가 AHB 버스로 버스트 전송되도록 하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 이미 완전히 상기 이미지 메모리에 기입되면, 상기 메인 상태 머신은 버스트 기입 모드 상태 BWR_ST에서 버스트 기입 모드 대기 상태 BWR_WAIT로 진입한다.
버스트 기입 모드 대기 상태 BWR_WAIT에서, 상기 메인 상태 머신은 상기 이진화 FIFO 모듈 내의 상기 픽셀 데이터 처리를 기반으로 획득한 상기 이진화 데이터의 개수에 따라, 상기 이진화 FIFO 모듈 내의 상기 이진화 데이터의 개수가 상기 이미지 메모리의 모든 상기 픽셀 데이터의 개수와 동일한지를 판단하고, 그러한 경우, 상기 이미지 메모리의 모든 상기 픽셀 데이터를 처리하며, 버스트 기입 모드 대기 상태 BWR_WAIT에서 종료 상태 FSM_FINISH로 진입한다.
본 발명의 일 실시예에 있어서, 상기 메인 상태 머신은 버스트 판독 모드 상태 BRD_ST에 있으며, 상기 인터페이스 준비 신호가 높게 설정되면, 도 3에 도시된 바와 같이, 상기 버스트 판독 상태 머신은 초기 상태 IDLE1에서 버스트 판독 작업 상태 BST_RD로 점프한다. 버스트 판독 작업 상태 BST_RD에서, 상기 버스트 판독 상태 머신은 상기 인터페이스 제어 상태 머신이 AHB 프로토콜을 기반으로 하는 버스트 판독 명령을 AHB 버스에 전송하도록 제어함으로써, 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터가 상기 이진화 모듈에 완전히 버스트 전송됨과 동시에, 상기 이진화 모듈 내에서 하나의 버스트 전송 길이의 상기 픽셀 데이터를 미리 설정된 임계값과 각각 비교함으로써 대응하는 하나의 버스트 전송 길이의 상기 이진화 데이터를 획득하며, 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 전송한다. 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이진화 FIFO 모듈로 전송되기 시작할 때, 버스트 판독 완료 상태 DONE1에 진입하면, 상기 버스트 판독 상태 머신은 버스트 판독 완료 상태 DONE1에 진입한다. 버스트 판독 완료 상태 DONE1에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 전송되면, 상기 버스트 판독 상태 머신은 버스트 판독 대기 상태 BWAIT1로 진입하여, 상기 인터페이스 준비 신호가 높게 설정되어 초기 상태 IDLE1로 점프-백(jump-back)하기를 기다린다.
본 발명의 일 실시예로서, 상기 메인 상태 머신은 버스트 기입 모드 상태 BWR_ST에 있으며, 상기 인터페이스 준비 신호가 높게 설정되면, 도 4에 도시된 바와 같이, 상기 버스트 기입 상태 머신은 초기 상태 IDLE2에서 버스트 기입 작업 상태 BST_WR로 점프한다. 버스트 기입 작업 상태 BST_WR에서, 상기 버스트 기입 상태 머신은 상기 이진화 FIFO 모듈에 제어신호를 송신함으로써 상기 이진화 FIFO 모듈이 하나의 버스트 전송 길이의 상기 이진화 데이터를 AHB 버스에 완전히 버스트 라이트-백(burst write-back)되도록 하며, 동시에 상기 버스트 기입 상태 머신은 상기 인터페이스 제어 상태 머신에서 AHB 버스로 AHB 프로토콜을 기반으로 한 버스트 기입 명령을 송신하도록 제어하여 상기 이진화 데이터가 AHB버스로부터 상기 이미지 메모리에 버스트 기입되도록 하며, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이미지 메모리에 전송되어 기입되기 시작할 때, 상기 버스트 기입 상태 머신은 버스트 기입 완료 상태 DONE2로 진입한다. 버스트 기입 완료 상태 DONE2에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이미지 메모리에 기입되면, 상기 버스트 기입 상태 머신은 버스트 기입 대기 상태 BWAIT2에 진입하여 상기 인터페이스 준비 신호가 높게 설정되어 초기 상태 IDLE2로 점프-백하기를 기다린다.
본 발명의 일 실시예로서, 도 5에 도시된 바와 같이, 상기 인터페이스 제어 상태 머신의 점프 조건은 상기 버스트 판독 상태 머신과 상기 버스트 기입 상태 머신의 작업 상태에 의해 결정된다. 초기 상태 IDLE3에서, 상기 인터페이스 제어 상태 머신은 버스트 전송을 기다린다. 상기 인터페이스 제어 상태 머신이 버스트 판독 작업 상태 BST_RD에 진입하거나, 또는 상기 버스트 기입 상태 머신이 버스트 기입 작업 상태 BST_WR에 진입하고 상기 이미지 메모리가 상기 인터페이스 준비 신호를 통해 버스트 판독 및 기입 준비를 지시하는 경우, 상기 인터페이스 제어 상태 머신은 초기 상태 IDLE3에서 불연속 전송 상태 NSEQ로 진입한다.
불연속 전송 상태 NSEQ에서, 상기 인터페이스 준비 신호는 높게 설정되고, 상기 버스트 판독 상태 머신이 버스트 판독 작업 상태 BST_RD에서 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 완전히 버스트 판독하지 않은 경우, 또는 상기 버스트 기입 상태 머신이 버스트 기입 작업 상태 BST_WR에서, 상기 메인 상태 머신을 통해 AHB 버스를 간접적으로 제어하여, 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이미지 메모리에 완전히 버스트 기입하지 않은 경우, 상기 인터페이스 제어 상태 머신은 불연속 전송 상태 NSEQ에서 연속 전송 상태 SEQQ로 진입하며; 상기 버스트 판독 상태 머신과 상기 버스트 기입 상태 머신의 제어 작용하에, 상기 픽셀 데이터와 상기 이진화 데이터 간의 버스트 전송을 수행하며; 상기 버스트 판독 상태 머신이 버스트 판독 제어 상태 BST_RD에서 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈에 완전히 기입한 경우, 또는 상기 버스트 기입 상태 머신이 버스트 기입 작업 상태 BST_WR에서, 상기 메인 상태 머신을 통해 AHB 버스를 간접적으로 제어함으로써, 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이미지 메모리에 완전히 버스트 기입한 경우, 상기 인터페이스 제어 상태 머신은 불연속 전송 상태 NSEQ에서 초기 상태 IDLE3로 진입하며, 이는 일회의 전송 동작을 의미한다. 그러나, 불연속 전송 상태 NSEQ에서, 상기 인터페이스 준비 신호가 높게 설정되지 않은 경우, 상기 인터페이스 제어 상태 머신은 불연속 전송 상태 NSEQ를 유지한다.
연속 전송 상태 SEQQ에서, 상기 인터페이스 준비 신호가 높게 설정된 경우, 상기 버스트 판독 상태 머신의 제어하에, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 버스트 판독되거나, 또는 상기 버스트 기입 상태 머신이 상기 메인 상태 머신을 통해 상기 인터페이스 제어 상태 머신으로 AHB 프로토콜을 기반으로 한 버스트 판독 명령을 송신하여 AHB 버스를 제어함으로써 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이미지 메모리에 완전히 버스트 기입되도록 하면, 상기 인터페이스 제어 상태 머신은 연속 전송 상태 SEQQ에서 초기 상태 IDLE3로 진입하고; 상기 인터페이스 준비 신호가 높게 설정되지 않았거나, 또는 상기 인터페이스 준비 신호가 이미 높게 설정되었으나 전술한 하나의 버스트 전송 길이의 상기 이진화 데이터가 연속 전송 상태 SEQQ에서 버스트 판독 기입 동작을 완료하지 않은 경우, 상기 인터페이스 제어 상태 머신은 연속 전송 상태 SEQQ를 유지한다.
본 발명의 일 실시예로서, 상기 액셀러레이션 제어 시스템은 AHB 버스의 버스트 전송을 위한 판독 및 기입 레지스터 그룹이 구비되며, 판독 레지스터는 상기 이미지 메모리가 버스트 판독 작동에 의해 전송된 상기 픽셀 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜을 기반으로 하는 버스트 판독 명령 정보를 저장하며; 기입 레지스터는 상기 이진화 모듈에 의해 버스트 전송된 상기 이진화 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜을 기반으로 하는 버스트 기입 명령 정보를 저장하며; 상기 판독 및 기입 레지스터 그룹은 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜을 기반으로 하는 버스트 명령 정보에 따라 판독 및 기입 동작을 수행하며; 버스트 판독 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 판독 명령 정보에 따라 상기 판독 레지스터가 상기 픽셀 데이터를 리드-인(read-in)할 것인지 리드-아웃(read-out)할 것인지를 선택하며; 버스트 기입 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 기입 명령 정보에 따라 상기 기입 레지스터가 상기 이진화 데이터를 내부로 기입할 것인지 아니면 외부로 기입할 것인지를 선택한다. 본 발명의 실시예에서, 하나의 버스트 전송 길이는 16 개 데이터이며, 상기 이미지 메모리 내의 상기 픽셀 데이터가 16개 보다 작으나, 8개보다 크면, 판독 및 기입 레지스터 그룹에는 버스트 전송 길이가 8개로 설정되어 버스트 판독과 기입을 수행하며; 상기 이미지 메모리 내의 상기 픽셀 데이터가 8개 보다 작으나, 4개보다 크면, 판독 및 기입 레지스터 그룹에는 버스트 전송 길이가 4개로 설정되어 버스트 판독과 기입을 수행하며; 상기 이미지 메모리 내의 상기 픽셀 데이터가 4개 보다 작으나, 2개보다 크면, 판독 및 기입 레지스터 그룹에는 버스트 전송 길이가 2개로 설정되어 버스트 판독과 기입을 수행하며; 상기 이미지 메모리 내의 상기 픽셀 데이터가 2개 보다 작으면, 판독 및 기입 레지스터 그룹에는 버스트 전송 길이가 1개로 설정되어 일회의 판독과 기입을 수행한다. 따라서, 상기 액셀러레이션 제어 시스템에서, 상기 버스트 판독 상태 머신과 버스트 기입 상태 머신은 burst16、burst8、burst4와 burst2 전송을 모두 지지한다.
본 발명의 일 실시예로서, 상기 액셀러레이션 제어 시스템은 또한 인터럽트 레지스터를 구비하며, 상기 이미지 메모리에서 AHB 버스로 상기 픽셀 데이를 버스트 전송하기 시작할 때, 인터럽트 레지스터는 CPU가 송신한 인터럽트 신호를 수신하여 상기 메인 제어 모듈이 중단을 수행하며; 상기 이미지 메모리 내에 저장된 이미지의 모든 픽셀 데이터가 이진화 처리되면, 인터럽트 레지스터를 통해 상기 이미지 메모리 내의 해당 주소 유닛에서 상기 이진화 데이터를 모두 추출하도록 CPU에 알리며, CPU의 제어하에 소프트웨어 처리를 수행한다. CPU의 판독 및 기입 연산에 대한 직접적인 제어에 비해, 많은 응답 및 요청이 줄어들고, 상기 하드웨어 가속 회로가 처리하는 프로세스의 효율이 더욱 높게 된다.
본 발명의 설계는 4개의 상태 머신을 통해 입력된 상기 픽셀 데이터의 이진화 처리 및 처리된 상기 이진화 데이터를 제어하며, 상기 메인 상태 머신은 상기 버스트 판독 상태 머신, 상기 버스트 기입 상태 머신과 상기 인터페이스 제어 상태 머신의 변환 프로세스를 제어하며, AHB 버스를 통해 상기 인터페이스 제어 상태 머신과 상기 이미지 메모리의 데이터 교환 전송 제어 명령을 완료하며, 상태 변환 프로세스를 걸쳐 CPU가 데이터 액세스 주소를 사전 설정하고 연산 결과의 중단 통지를 수신해야 하며, CPU의 다른 개입없이 데이터 교환을 완료한다.
본 발명은 칩을 개시하며, 상기 칩은 이미지 처리 칩이고, 그 내부 구조는 상기 액셀러레이션 제어 시스템을 포함하며, 이미지 이진화 알고리즘 가속 엔진으로서, 상기 이미지 픽셀 데이터의 이진화 처리 과정을 가속화하여 이미지 처리 시스템의 데이터 처리량과 이진화 알고리즘의 연산속도를 향상시킨다.
본 발명은 로봇을 개시하며, 상기 로봇은 모바일 비전 로봇으로, 그 내부에는 상기 이미지 처리 칩이 내장되어, 모바일 비전 로봇의 카메라가 이미지 데이터를 수집하는 처리 프로세스를 가속화한다.
위에서 설명한 장치 실시예는 단지 예시적인 것이며, 별도의 구성 요소로 설명된 유닛은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있으며, 유닛으로 표시되는 구성 요소는 물리적 단위 일 수도 있고 아닐 수도 있다. 즉, 한 위치이거나 또는 여러 네트워크 유닛에 분산될 수 있다. 실제 수요에 따라 일부 또는 전부 모듈을 선택하여 본 실시예의 솔루션의 목적을 달성할 수 있다. 당업자들은 창의적인 노동없이 이를 이해하고 구현할 수 있다.

Claims (8)

  1. 이진화 알고리즘을 기반으로 하는 액셀러레이션 제어 시스템에 있어서,
    상기 액셀러레이션 제어 시스템은 AHB 버스를 통해 외부 이미지 메모리에 대하여 판독(read) 및 기입(write)하도록 구성되며, 메인 제어 모듈, 이진화 모듈과 이진화 FIFO 모듈을 포함하고, 인터럽트 레지스터를 구비하며;
    이진화 모듈은 상기 이미지 메모리에서 버스트 전송된 픽셀 데이터를 수신하고 이진화 처리한 다음, 처리된 이진화 데이터를 이진화 FIFO 모듈로 전송하며, 상기 이미지 메모리에 저장된 이미지의 모든 픽셀 데이터의 처리가 완료되면, 상기 인터럽트 레지스터는 CPU로 인터럽트 명령을 전송하도록 상기 액셀러레이션 제어 시스템에 알리며;
    메인 제어 모듈은 메인 상태 머신, 버스트 판독(burst read) 상태 머신, 버스트 기입(burst write) 상태 머신 및 인터페이스 제어 상태 머신이 포함하고, 메인 제어 모듈은 메인 상태 머신이 버스트 판독 모드 상태인 경우,인터페이스 제어 상태 머신을 통해 AHB 버스를 제어하여 상기 이미지 메모리 내의 처리대상인 픽셀 데이터를 판독하며, AHB 버스 내의 현재 픽셀 데이터를 이진화 모듈로 버스트 전송하여 처리하도록 함과 동시에, 버스트 판독 상태 머신을 통해 이진화 FIFO 모듈을 제어하여 이진화 모듈 내의 직전의 버스트 전송을 기반으로 한 픽셀 데이터 처리를 통해 얻은 이진화 데이터를 판독하도록 하여, 상기 액셀러레이션 제어 시스템이 메인 상태 머신의 제어하에 파이프 라인의 작동 방법으로 이진화의 처리 속도를 가속화하도록 하며;
    메인 제어 모듈은 메인 상태 머신이 버스트 기입 모드 상태인 경우에, 버스트 기입 상태 머신을 통해 이진화 FIFO 모듈에 저장된 이진화 데이터를 AHB 버스에 기입하고, 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 이진화 데이터를 상기 이미지 메모리에 라이트-백(write-back)하는 것을 특징으로 하는 이진화 알고리즘을 기반으로 하는 액셀러레이션 제어 시스템.
  2. 제 1 항에 있어서,
    상기 메인 상태 머신은 버스트 판독 모드 상태에서, 상기 버스트 판독 상태 머신을 초기 상태로부터 버스트 판독 작업 상태에 진입하도록 활성화 시키며, AHB 버스를 통해 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터를 버스트 판독하고, AHB 버스 내의 상기 픽셀 데이터가 상기 이진화 모듈로 버스트 전송되도록 제어함과 동시에, 상기 버스트 판독 상태 머신을 통해 상기 이진화 FIFO 모듈이 상기 이진화 모듈에서 처리된 상기 이진화 데이터를 버스트 판독하도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈에 완전히 저장될 때까지, 상기 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 버스트 판독된 다음의 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈로 버스트 전송하여 처리되도록 제어하고, 하나의 버스트 전송 길이의 상기 이진화 데이터가 이미 상기 이진화 FIFO 모듈에 완전히 저장되면, 버스트 판독 모드 대기 상태로 진입하며;
    상기 메인 상태 머신은 버스트 판독 모드 대기 상태에서 AHB 버스가 상기 이진화 FIFO 모듈에 버스트 기입할 준비가 될 때까지 대기하며, 해당 상태가 하나의 클럭 주기동안 지속되면, 버스트 판독 모드 대기 상태로부터 버스트 기입 모드 상태로 점프하며;
    상기 메인 상태 머신은 버스트 기입 모드 상태에서 상기 버스트 기입 상태 머신을 초기 상태로부터 버스트 기입 작업 상태에 진입하도록 활성화 시킴으로써, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이진화 FIFO 모듈로부터 AHB 버스로 버스트 라이트-아웃(write-out)되도록 제어하며, 동시에 인터페이스 제어 상태 머신을 통해 AHB 버스 내의 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 라이트-백(write-back)되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 완전히 기입되지 않으면, 상기 버스트 기입 상태 머신을 통해 상기 이진화 FIFO 모듈 내의 다음의 버스트 전송 길이의 상기 이진화 데이터가 AHB 버스에 버스트 전송되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터가 상기 이미지 메모리에 완전히 기입되면, 버스트 기입 모드 상태로부터 버스트 기입 모드 대기 상태로 진입하며;
    상기 메인 상태 머신은 버스트 기입 모드 대기 상태에서 상기 이진화 FIFO 모듈 내의 상기 이진화 데이터의 개수에 따라 상기 이미지 메모리의 상기 픽셀 데이터가 모두 처리되었는지를 판단하며, 그러한 경우, 버스트 기입 모드 대기 상태로부터 종료 상태로 진입하고, 그러하지 않은 경우, 버스트 판독 모드 상태로 진입하며;
    상기 이진화 FIFO 모듈의 깊이는 상기 버스트 전송 길이와 동일하며, 상기 버스트 전송 길이는 매번 버스트 전송된 데이터의 개수에 해당되고, 버스트 판독 모드 상태와 버스트 기입 모드 상태에서 동일한 것을 특징으로 하는 액셀러레이션 제어 시스템.
  3. 제 2 항에 있어서,
    상기 버스트 판독 상태 머신은 상기 버스트 판독 작업 상태에서 상기 이미지 메모리 내의 하나의 버스트 전송 길이의 상기 픽셀 데이터를 상기 이진화 모듈로 완전히 버스트 판독되도록 함과 동시에, 상기 이진화 모듈 내에서 버스트 전송된 상기 픽셀 데이터에 대해 이진화 처리를 수행하고 해당 처리에 의해 얻은 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 전송되도록 하며, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이진화 FIFO 모듈로 전송되기 시작하면, 버스트 판독 완료 상태로 진입하고;
    상기 버스트 판독 상태 머신은 버스트 판독 완료 상태에서 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 전송되면, 버스트 판독 대기 상태로 진입하여 인터페이스 준비 신호가 높게 설정되어 상기 초기 상태로 돌아가기를 대기하며;
    상기 버스트 기입 상태 머신은 상기 버스트 기입 작업 상태에서 상기 이진화 FIFO 모듈을 제어하여 하나의 버스트 전송 길이의 상기 이진화 데이터가 AHB 버스로 버스트 라이트-백(burst write-back)되도록 함과 동시에, 상기 이진화 데이터가 AHB 버스로부터 상기 이미지 메모리에 전송되어 기입되도록 제어하며, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 상기 이미지 메모리로 전송되기 시작하면, 버스트 기입 완료 상태로 진입하며;
    상기 버스트 기입 상태 머신은 버스트 기입 완료 상태에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이미지 메모리로 버스트 라이트-백되면, 버스트 기입 대기 상태로 진입하여 상기 인터페이스 준비 신호가 높게 설정되어 상기 초기 상태로 돌아갈 때까지 대기하는 것을 특징으로 하는 액셀러레이션 제어 시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 인터페이스 제어 상태 머신은 초기 상태에서 전송을 대기하며, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태로 진입하거나, 또는 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태로 진입하고, 상기 이미지 메모리가 인터페이스 준비 신호를 통해 버스트 판독 및 기입 준비를 지시하는 경우, 불연속 전송 상태로 진입하며;
    상기 인터페이스 제어 상태 머신은 불연속 전송 상태에서, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태하에 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 완전히 버스트 판독하지 않은 경우, 또는, 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태하에 AHB 버스가 하나의 버스트 전송 길이의 상기 이진화 데이터를 완전히 상기 이미지 메모리에 버스트 기입하는 것을 간접적으로 제어하지 않은 경우, 연속 전송 상태로 진입하며;
    상기 인터페이스 제어 상태 머신은 불연속 전송 상태에서, 상기 버스트 판독 상태 머신이 상기 버스트 판독 작업 상태하에 하나의 버스트 전송 길이의 상기 이진화 데이터를 상기 이진화 FIFO 모듈로 완전히 버스트 판독한 경우, 또는, 상기 버스트 기입 상태 머신이 상기 버스트 기입 작업 상태하에 AHB 버스가 하나의 버스트 전송 길이의 상기 이진화 데이터를 완전히 상기 이미지 메모리에 버스트 기입하는 것을 간접적으로 제어한 경우, 상기 초기 상태로 진입하며;
    상기 인터페이스 제어 상태 머신은 상기 연속 전송 상태에서, 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이진화 FIFO 모듈로 버스트 판독된 경우, 또는 하나의 버스트 전송 길이의 상기 이진화 데이터 중 마지막 하나의 데이터가 이미 상기 이미지 메모리에 버스트 기입된 경우, 상기 초기 상태로 진입하는 것을 특징으로 하는 액셀러레이션 제어 시스템.
  5. 제 1 항에 있어서,
    AHB 버스의 버스트 전송을 위한 판독 및 기입 레지스터 그룹을 구비하며,
    판독 레지스터는 상기 이미지 메모리에서 버스트 전송된 상기 픽셀 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜의 버스트 판독 명령 정보를 저장하며; 기입 레지스터는 상기 이진화 모듈에 의해 버스트 전송된 상기 이진화 데이터, 대응하는 버스트 전송 길이 정보와 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB 프로토콜의 버스트 기입 명령 정보를 저장하며;
    상기 판독 및 기입 레지스터 그룹은 상기 인터페이스 제어 상태 머신에 의해 전송된 AHB프로토콜을 기반으로 하는 버스트 명령 정보에 따라 판독 및 기입 동작을 수행하며; 버스트 판독 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 판독 명령 정보에 따라, 상기 판독 레지스터가 상기 픽셀 데이터를 리드-인(read-in)할 것인지 리드-아웃(read-out)할 것인지를 선택하며; 버스트 기입 동작을 수행하는 경우, AHB 버스에 의해 분석된 버스트 기입 명령 정보에 따라, 상기 기입 레지스터가 상기 이진화 데이터를 라이트-인(write-in)할 것인지 라이트-아웃(write-out)할 것인지를 선택하는 것을 특징으로 하는 액셀러레이션 제어 시스템.
  6. 제 1 항에 있어서,
    상기 이미지 메모리 내에 저장된 이미지의 모든 픽셀 데이터가 이진화 처리된 후에, 상기 인터럽트 레지스터는 상기 이미지 메모리 내의 해당 주소 유닛에서 상기 이진화 데이터를 모두 추출하도록 CPU에 알린 다음, 소프트웨어 처리를 수행하는 것을 특징으로 하는 액셀러레이션 제어 시스템.
  7. 이미지 처리 칩인 칩에 있어서,
    내부 구조로서, 제 1 항에 따른 이미지 픽셀 데이터의 이진화 처리 과정을 가속화하기 위한 상기 액셀러레이션 제어 시스템을 포함하는 것을 특징으로 하는 칩.
  8. 모바일 비전 로봇인 로봇에 있어서,
    제 7 항에 따른 이미지 처리 칩이 내장된 것을 특징으로 하는 로봇.
KR1020217007640A 2018-08-14 2018-12-07 이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇 KR102520983B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810920821.5 2018-08-14
CN201810920821.5A CN108984442B (zh) 2018-08-14 2018-08-14 一种基于二值化算法的加速控制***、芯片及机器人
PCT/CN2018/119916 WO2020034500A1 (zh) 2018-08-14 2018-12-07 一种基于二值化算法的加速控制***、芯片及机器人

Publications (2)

Publication Number Publication Date
KR20210042978A KR20210042978A (ko) 2021-04-20
KR102520983B1 true KR102520983B1 (ko) 2023-04-12

Family

ID=64552991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007640A KR102520983B1 (ko) 2018-08-14 2018-12-07 이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇

Country Status (6)

Country Link
US (1) US11269796B2 (ko)
EP (1) EP3839754B1 (ko)
JP (1) JP7104448B2 (ko)
KR (1) KR102520983B1 (ko)
CN (1) CN108984442B (ko)
WO (1) WO2020034500A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857702B (zh) * 2019-04-18 2023-02-17 珠海一微半导体股份有限公司 一种基于机器人的激光雷达数据读写控制***及芯片
CN111193873B (zh) * 2019-12-25 2021-07-20 新大陆数字技术股份有限公司 一种图像快速调光***及方法
CN111679286B (zh) * 2020-05-12 2022-10-14 珠海一微半导体股份有限公司 一种基于硬件加速的激光定位***及芯片
CN114442908B (zh) * 2020-11-05 2023-08-11 珠海一微半导体股份有限公司 一种用于数据处理的硬件加速***及芯片
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、***及芯片
CN112631658B (zh) * 2021-01-13 2022-11-15 成都国科微电子有限公司 指令发送方法、芯片和电子设备
CN113112393B (zh) * 2021-03-04 2022-05-31 浙江欣奕华智能科技有限公司 视觉导航***中的边缘化装置
CN114415951B (zh) * 2022-01-04 2024-04-05 杭州中天微***有限公司 图像数据访存单元、方法、加速单元及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005032019A (ja) 2003-07-04 2005-02-03 Nec Micro Systems Ltd Ambaにおけるバス調停システム
JP2006154897A (ja) 2004-11-25 2006-06-15 Oki Electric Ind Co Ltd Dramコントローラ
JP2007532066A (ja) 2004-03-31 2007-11-08 シリコン ラボラトリーズ インコーポレーテッド 制限されたバス・アクセスを伴う時間領域分離を実装する通信装置
JP2009200968A (ja) 2008-02-22 2009-09-03 Canon Inc 画像処理装置及びその制御方法
JP2009205412A (ja) 2008-02-27 2009-09-10 Toshiba Corp Dramコントローラおよびメモリシステム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4143302B2 (ja) * 2002-01-15 2008-09-03 キヤノン株式会社 画像処理装置、画像処理方法、制御プログラム及び記録媒体
US7443526B2 (en) * 2003-07-07 2008-10-28 Kabushiki Kaisha Toshiba Multi-function image processing apparatus and method
JP4313130B2 (ja) * 2003-09-18 2009-08-12 株式会社リコー 画像形成装置、画像形成方法、およびその方法をコンピュータで実行するプログラム
CN101359225B (zh) * 2008-08-29 2010-10-06 北京大学 一种多水下机器人协作控制***
CN101567078B (zh) * 2009-03-27 2011-06-22 西安交通大学 一种双总线的视觉处理芯片架构
CN102207920B (zh) * 2010-03-30 2013-12-04 比亚迪股份有限公司 一种bvci总线到ahb总线的转换桥
US10061537B2 (en) * 2015-08-13 2018-08-28 Microsoft Technology Licensing, Llc Data reordering using buffers and memory
CN105573951B (zh) * 2015-12-24 2018-02-09 哈尔滨理工大学 一种针对数据流传输的ahb总线接口***
CN107577636A (zh) * 2017-09-12 2018-01-12 天津津航技术物理研究所 一种基于soc的axi总线接口数据传输***及传输方法
CN108161938A (zh) * 2017-12-27 2018-06-15 华南智能机器人创新研究院 一种机器人中的视觉跟踪方法及***
CN211403419U (zh) * 2018-08-14 2020-09-01 珠海市一微半导体有限公司 基于二值化算法的加速控制***、芯片及机器人
TWI726525B (zh) * 2019-12-09 2021-05-01 新唐科技股份有限公司 影像二值化方法與電子裝置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005032019A (ja) 2003-07-04 2005-02-03 Nec Micro Systems Ltd Ambaにおけるバス調停システム
JP2007532066A (ja) 2004-03-31 2007-11-08 シリコン ラボラトリーズ インコーポレーテッド 制限されたバス・アクセスを伴う時間領域分離を実装する通信装置
JP2006154897A (ja) 2004-11-25 2006-06-15 Oki Electric Ind Co Ltd Dramコントローラ
JP2009200968A (ja) 2008-02-22 2009-09-03 Canon Inc 画像処理装置及びその制御方法
JP2009205412A (ja) 2008-02-27 2009-09-10 Toshiba Corp Dramコントローラおよびメモリシステム

Also Published As

Publication number Publication date
EP3839754A4 (en) 2022-05-11
JP2021536051A (ja) 2021-12-23
CN108984442A (zh) 2018-12-11
EP3839754A1 (en) 2021-06-23
EP3839754B1 (en) 2023-08-23
US11269796B2 (en) 2022-03-08
EP3839754C0 (en) 2023-08-23
JP7104448B2 (ja) 2022-07-21
WO2020034500A1 (zh) 2020-02-20
US20210311894A1 (en) 2021-10-07
CN108984442B (zh) 2023-08-18
KR20210042978A (ko) 2021-04-20

Similar Documents

Publication Publication Date Title
KR102520983B1 (ko) 이진화 알고리즘 기반의 액셀러레이션 제어 시스템, 칩 및 로봇
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
KR102513920B1 (ko) 비휘발성 스토리지 시스템 및 비휘발성 스토리지 장치들을 위한 데이터 스토리지 액세스 프로토콜
US10055807B2 (en) Hardware architecture for acceleration of computer vision and imaging processing
JP2006195823A (ja) Dma装置
JP2018018513A (ja) メモリシステム、プロセシングシステム、及びメモリスタックを動作させる方法
US6782463B2 (en) Shared memory array
CN211403419U (zh) 基于二值化算法的加速控制***、芯片及机器人
WO2022095439A1 (zh) 一种用于数据处理的硬件加速***及芯片
US7409486B2 (en) Storage system, and storage control method
CN116719764B (zh) 数据同步方法、***以及相关装置
US7774513B2 (en) DMA circuit and computer system
JPH0844559A (ja) データ処理装置およびそのオペレーション方法
CN108897696B (zh) 一种基于DDRx存储器的大容量FIFO控制器
CN116303221A (zh) 一种多核处理器片上网络***的数据传输方法
CN115328832A (zh) 一种基于pcie dma的数据调度***与方法
US6829692B2 (en) System and method for providing data to multi-function memory
CN107807888B (zh) 一种用于soc架构的数据预取***及其方法
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JP2006268857A (ja) データ処理装置からレジスタ記憶システムにデータを書き込む方法、データ・レジスタおよびレジスタ・アクセス・システム
US20070198754A1 (en) Data transfer buffer control for performance
EA038978B1 (ru) Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных
CN115796251A (zh) 计算装置及其卷积数据的共享机制
CN117076064A (zh) 一种Chiplet上由NPU DMA自动触发SOC DMA的方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right