KR20030090073A - 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 - Google Patents

가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 Download PDF

Info

Publication number
KR20030090073A
KR20030090073A KR1020020028063A KR20020028063A KR20030090073A KR 20030090073 A KR20030090073 A KR 20030090073A KR 1020020028063 A KR1020020028063 A KR 1020020028063A KR 20020028063 A KR20020028063 A KR 20020028063A KR 20030090073 A KR20030090073 A KR 20030090073A
Authority
KR
South Korea
Prior art keywords
bus
bit
host
address
data
Prior art date
Application number
KR1020020028063A
Other languages
English (en)
Other versions
KR100476895B1 (ko
Inventor
유영두
정득수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2002-0028063A priority Critical patent/KR100476895B1/ko
Priority to US10/364,140 priority patent/US6898659B2/en
Publication of KR20030090073A publication Critical patent/KR20030090073A/ko
Application granted granted Critical
Publication of KR100476895B1 publication Critical patent/KR100476895B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명에 따른 인터페이스 장치는 호스트와 m-비트 단위로 인터페이스한다. 플래그 신호 발생 회로는 상기 인터페이스 장치의 데이터 전송 모드가 멀티 전송 모드인 지의 여부를 나타내는 모드 플래그 신호를 발생한다. 제어 회로는 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스인지 여부를 나타내는 그리고 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 정보에 응답하여 동작하며, 상기 멀티 전송 모드에서 상기 호스트로부터 전달되는 m-비트 데이터가 연속적으로 선입선출 메모리에 저장되게 한다. 상기 선입선출 메모리에 연속적으로 저장된 데이터는 상기 제어 회로의 제어하에 상기 인터페이스 장치에 연결된 고속 버스로 한번에 전송된다.

Description

가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및 그것의 동작 방법{INTERFACE DEVICE HAVING VARIABLE DATA TRANSFER MODE AND OPERATING METHOD THEREOF}
본 발명은 인터페이스 장치에 관한 것으로, 좀 더 구체적으로는 고속 버스 (high-speed bus)과 저속 버스 (low-speed bus) 사이에서 인터페이스 기능을 수행하는 인터페이스 장치에 관한 것이다.
오늘날 칩 설계 기술은 DSM(deep sub-micron)으로 변화되고 있으며, 특히 복수의 마스터들을 포함하는 시스템을 하나의 칩으로 구현하고자 하는 SOC (system on a chip) 설계 기술로 발전되어지고 있다. 따라서 그러한 시스템 상의 여러 구성 요소들은 서로 버스 구조 (bus architecture)를 공유하게 되고, 주어진 공유 버스를 얼나마 효과적으로 나누어 사용하는 가에 따라 전체적인 시스템의 성능이 좌우된다. SOC 설계 기술에 따라 설계/제조된 시스템은 이하 복합칩 (System On a Chip)이라 칭한다. SOC 설계에 있어서, 호스트와의 인터페이스 방법으로서, PCI (peripheral componet interface), 32-비트 PC 카드 (32-bit PC card) (소위 "카드버스(CardBus)"라 불림), 그리고 PCMCIA (personal computer memory cardinternational association)를 이용한 방법이 널리 사용되어지고 있다. 동작 속도나 데이터 전송 효율에 있어서, PCI와 32-비트 PC 카드가 PCMCIA에 비해 성능면에서 우수하다고 할 수 있다.
하지만, PCI나 32-비트 PC 카드는 PCMCIA에 비해 회로 구성이 복잡하고 통신 규약 (communication protocol)이 PCMCIA에 비해 어렵다는 단점을 가지고 있다. 게다가, 전체적인 규모가 적은 칩의 경우, PCI나 32-비트 PC 카드는 PCMCIA에 비해 회로 크기가 매우 크기 때문에 호스트와 인터페이스를 하기 위한 로직으로서 부적절하다. 즉, PCI와 32-비트 PC 카드는 32-비트 데이터 전송을 목적으로 사용되므로, 8-비트 또는 16-비트 데이터만을 전송할 수 있는 호스트 시스템에는 면적과 회로 복잡도로 볼 때 적절하지 않을 수 있다. 이에 반해서, PCMCIA의 통신 규약이 상대적으로 간단하고 PCMCIA의 회로 크기가 작기 때문에, PCMCIA 블록 (110)은 8-비트 또는 16-비트 단위로 데이터를 전송하는 호스트 시스템에 적합하다. 그러한 이유로, PCMCIA 블록 (110)은 현재 모바일 어플리케이션 (mobile application)으로 널리 사용되어지고 있다. PCMCIA는 8-비트/16-비트 단위로 호스트와 인터페이스하기 위한 PC 카드로, 주로 메모리 인터페이스로서 사용되어진다.
PCMCIA는, 앞서 언급한 바와 같이, 작은 크기 (small size), 쉬운 통신 규약 (easy communication protocol), 모바일 어플리케이션 (mobile application)과 같은 장점들을 가지고 있다. 하지만, 대부분의 시스템들은 32-비트 버스 구조 또는 그 보다 큰 데이터 폭 (data width)을 갖는 버스 구조 뿐만 아니라, PCMCIA의 클록보다 훨씬 빠른 속도의 클록을 사용한다. 32-비트 버스 구조를 갖는 그러한 시스템또는 복합칩에는 다수의 마스터들이 포함된다. 그러한 마스터들 중 하나는 PCMCIA이다.
32-비트 버스 시스템에 있어서, PCMCIA는 한번에 16-비트 데이터만을 전송할 수 있다. 즉, PCMCIA는 32-비트 버스 시스템에서 버스의 절반만을 사용하게 된다. 32-비트 버스 시스템에서 PCMCIA가 마스터로 동작할 경우, 전체적으로 시스템 성능이 떨어지게 된다. 왜냐하면, 동작 속도가 느린 PCMCIA가 32-비트 버스를 사용할수록 상대적으로 다른 마스터가 32-비트 버스를 사용할 수 있는 기회가 줄어들기 때문이다.
앞서 설명된 바와 같이, PCMCIA는 한번에 최대 16-비트 데이터만을 전송할 수 있다. 복합칩의 공유 버스에 연결된 다른 블록과 32-비트 단위로 인터페이스할 경우, PCMCIA는 공유 버스를 2번 요구/사용해야 한다. 복합칩의 공유 버스에 연결된 다른 블록과 8-비트 인터페이스를 사용하는 경우, PCMCIA는 버스를 4번 요구/사용해야 한다. 그러므로, PCMCIA가 공유 버스를 사용하는 횟수가 많아짐에 따라, 버스 점유 횟수에 비례해서 다른 고속의 마스터가 동작할 수 있는 기회가 줄어든다.
이러한 문제는 공유 버스의 클록 속도가 빠를수록 더욱 심각해진다. 게다가, PCMCIA의 주된 목적이 호스트로부터 데이터를 받아 외부 메모리를 액세스하기 위한 것일 때, 외부 메모리의 속도가 매우 느리므로 PCMCIA가 버스를 차지하는 시간은 더욱 길어지게 된다.
본 발명의 목적은 시스템 성능을 향상시킬 수 있는 인터페이스 장치를 제공하는 것이다.
본 발명의 다른 목적은 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치를 제공하는 것이다.
도 1은 본 발명에 따른 복합칩을 보여주는 블록도;
도 2는 본 발명의 바람직한 실시예에 따른 PCMCIA 블록을 보여주는 블록도;
도 3은 호스트로부터의 데이터가 외부 메모리에 저장될 때 PCMCIA 블록의 동작을 설명하기 위한 흐름도;
도 4a 및 도 4b는 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 데이터 쓰기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면;
도 5는 외부 메모리로부터 읽혀진 데이터가 호스트로 전달될 때 PCMCIA 블록의 동작을 설명하기 위한 흐름도; 그리고
도 6a 및 도 6b는 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 데이터 읽기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 복합칩110 : PCMCIA 블록
120 : 메모리 컨트롤러130 : 버스 중재기
140, 150 : 마스터200 : 호스트
300 : 외부 메모리500 : 모드 레지스터
510 : PCMCIA 기능 제어 회로520 : 어드레스 점검 회로
530 : 쓰기 유한 상태 머신540 : 읽기 유한 상태 머신
550 : 선입선출 버퍼551 : 쓰기 제어 로직
552 : 읽기 제어 로직553 : 레지스터
상술한 제반 목적을 달성하기 위한 본 발명의 특징에 따르면, 인터페이스 장치는 호스트와 m-비트 단위로 인터페이스하며, 데이터를 저장하기 위한 선입선출 메모리를 포함한다. 플래그 신호 발생 회로는 상기 인터페이스 장치의 데이터 전송 모드가 멀티 전송 모드인 지의 여부를 나타내는 모드 플래그 신호를 발생하며, 상기 멀티 전송 모드에서는 n-비트 데이터 (여기서, n은 m의 정수배)가 상기 인터페이스 장치에서 n-비트 버스로 전송된다. 어드레스 점검 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스인지 여부를 나타내는 제 1 검출 신호와 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 제 2 검출 신호를 발생한다. 제어 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 제 1 및 제 2 검출 신호들에 응답하여 상기 호스트로부터 전달되는 m-비트 데이터가 연속적으로 상기 선입선출 메모리에 저장되게 한다. 상기 제어 회로는 상기 선입선출 메모리에 상기 n-비트 데이터가 모두 저장될 때 상기 선입선출 메모리에 저장된 n-비트 데이터가 버스 인터페이스를 통해 한번에 상기 n-비트 버스로 전달되게 한다.
이 실시예에 있어서, 상기 호스트로부터 데이터 폭-얼라인된 어드레스들이연속적으로 입력될 때, 상기 제어 회로는 상기 선입선출 메모리를 초기화함과 동시에 상기 후자의 데이터 폭-얼라인된 어드레스에 대응하는 m-비트 데이터가 상기 선입선출 메모리에 저장되게 한다.
이 실시예에 있어서, 상기 플래그 신호 발생 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드와 단일 전송 모드 중 어느 하나를 나타내도록 상기 호스트에 의해서 프로그램되며, 상기 단일 전송 모드에서는 상기 호스트로부터 전송되는 m-비트 데이터가 직접 상기 n-비트 버스로 전송된다.
이 실시예에 있어서, 상기 멀티 전송 모드시 상기 n-비트 버스로부터 n-비트 데이터가 전송될 때, 상기 제어 회로는 상기 n-비트 데이터가 상기 선입선출 메모리에 저장되게 한다.
이 실시예에 있어서, 상기 n-비트 버스로부터 전송된 n-비트 데이터가 상기 선입선출 메모리에 저장됨과 동시에, 상기 n-비트 데이터 중 m-비트 데이터는 상기 호스트로 전송된다.
이 실시예에 있어서, 상기 멀티 전송 모드시 데이터 폭-얼라인된 어드레스 범위에 속하는 어드레스가 상기 호스트로부터 입력될 때, 상기 선입선출 메모리에 저장된 나머지 데이터가 상기 호스트로 전송된다.
이 실시예에 있어서, 상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 호스트로부터 전송되는 m-비트 데이터는 바로 상기 n-비트 버스로 전송된다.
이 실시예에 있어서, 상기 선입선출 메모리에 대한 읽기/쓰기 동작은 데이터폭-얼라인된 어드레스 범위 내에서는 어드레스 순서에 관계없이 수행된다.
이 실시예에 있어서, 상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 n-비트 버스로부터 전송되는 m-비트 데이터는 상기 호스트로부터 바로 전송된다.
본 발명의 다른 특징에 따르면, 복합칩은 n-비트 버스와; 상기 n-비트 버스를 중재하는 버스 중재기와; 상기 n-비트 버스에 연결되며, 호스트와 m-비트 단위 (여기서, n은 m의 정수배)로 인터페이스하는 인터페이스 장치와; 그리고 상기 버스에 연결되며, 외부 메모리의 액세스를 제어하는 메모리 컨트롤러를 포함한다. 상기 인터페이스 장치는 데이터를 저장하기 위한 선입선출 메모리와; 상기 인터페이스 장치의 데이터 전송 모드가 멀티 전송 모드인 지의 여부를 나타내는 모드 플래그 신호를 발생하되, 상기 멀티 전송 모드에서는 n-비트 데이터 (여기서, n은 m의 정수배)가 상기 인터페이스 장치에서 n-비트 버스로 전송되는 플래그 신호 발생 회로와; 상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스인지 여부를 나타내는 제 1 검출 신호와 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 제 2 검출 신호를 발생하는 어드레스 점검 회로와; 그리고 상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 제 1 및 제 2 검출 신호들에 응답하여 상기 호스트로부터 전달되는 m-비트 데이터가 연속적으로 상기 선입선출 메모리에 저장되게 하는 제어 회로를 포함한다. 상기 제어 회로는 상기 선입선출 메모리에 상기 n-비트 데이터가 모두 저장될 때 상기 버스중재기에 버스 사용을 요구하고, 상기 버스 사용이 허용되면 상기 선입선출 메모리에 저장된 n-비트 데이터가 버스 인터페이스를 통해 한번에 상기 n-비트 버스로 전달되게 한다.
이 실시예에 있어서, 상기 호스트로부터 데이터 폭-얼라인된 어드레스들이 연속적으로 입력될 때, 상기 제어 회로는 상기 선입선출 메모리를 초기화함과 동시에 상기 후자의 데이터 폭-얼라인된 어드레스에 대응하는 m-비트 데이터가 상기 선입선출 메모리에 저장되게 한다.
이 실시예에 있어서, 상기 플래그 신호 발생 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드와 단일 전송 모드 중 어느 하나를 나타내도록 상기 호스트에 의해서 프로그램되며, 상기 단일 전송 모드에서는 상기 호스트로부터 전송되는 m-비트 데이터가 직접 상기 n-비트 버스로 전송된다.
이 실시예에 있어서, 상기 제어 회로는 상기 멀티 전송 모드시 상기 n-비트 버스로부터 전송되는 n-비트 데이터가 상기 선입선출 메모리에 저장되게 한다.
이 실시예에 있어서, 상기 n-비트 버스로부터 전송된 n-비트 데이터가 상기 선입선출 메모리에 저장됨과 동시에, 상기 n-비트 데이터 중 m-비트 데이터는 상기 호스트로 전송된다.
이 실시예에 있어서, 상기 선입선출 메모리의 나머지 데이터는 데이터 폭-얼라인된 어드레스 범위에 속하는 어드레스가 상기 호스트로부터 입력될 때 상기 호스트로 전송된다.
이 실시예에 있어서, 상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 호스트로부터 전송되는 m-비트 데이터는 바로 상기 n-비트 버스로 전송된다.
이 실시예에 있어서, 상기 선입선출 메모리에 대한 읽기/쓰기 동작은 데이터 폭-얼라인된 어드레스 범위 내에서는 어드레스 순서에 관계없이 수행된다.
이 실시예에 있어서, 상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 n-비트 버스로부터 전송되는 m-비트 데이터는 바로 상기 호스트로 전송된다.
본 발명의 또 다른 특징에 따르면, 호스트와 m-비트 단위로 인터페이스하는 인터페이스 장치의 동작 방법은 상기 인터페이스 장치에서 n-비트 버스로 n-비트 데이터 (여기서, n은 m의 정수배)가 전송되는 멀티 전송 모드 동안, 상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스일 때 상기 제 1 어드레스에 대응하는 m-비트 데이터를 선입선출 메모리에 저장하는 단계와; 상기 호스트로부터 전송된 제 2 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속할 때 상기 제 2 어드레스에 대응하는 m-비트 데이터를 상기 선입선출 메모리에 저장하는 단계와; 상기 선입선출 메모리가 상기 n-비트 데이터만큼 채워지면, 버스 중재기에 버스 사용을 요청하는 단계와; 그리고 버스 사용이 허용될 때 상기 선입선출 메모리에 저장된 n-비트 데이터를 상기 n-비트 버스로 전송하는 단계를 포함한다.
이 실시예에 있어서, 상기 제 2 어드레스가 데이터 폭-얼라인된 어드레스일 때, 상기 제 2 어드레스에 대응하는 데이터는 상기 제 1 어드레스에 대응하는 데이터 상에 덮어쓰여진다.
이 실시예에 있어서, n-비트 버스로 m-비트 데이터가 전송되는 단일 전송 모드 동안, 상기 호스트로부터 어드레스가 입력되면 버스 중재기에 버스 사용을 요청하는 단계와; 그리고 상기 버스 사용이 허용되면, 상기 어드레스에 대응하는 m-비트 데이터를 상기 n-비트 버스로 전송하는 단계를 더 포함한다.
본 발명의 또 다른 특징에 따르면, 호스트와 m-비트 단위로 인터페이스하는 인터페이스 장치의 동작 방법은 n-비트 버스로부터 상기 인터페이스 장치로 n-비트 데이터 (여기서, n은 m의 정수배)가 전송되는 멀티 전송 모드 동안, 상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스인 지의 여부를 판별하는 단계와; 상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스일 때, 버스 중재기에 버스 사용을 요청하는 단계와; 상기 제 1 어드레스에 대응하는 n-비트 데이터를 선입선출 메모리에 저장함과 동시에 상기 n-비트 데이터 중 m-비트 데이터를 상기 호스트로 전송하는 단계와; 그리고 데이터 폭-얼라인된 어드레스 범위에 속하는 제 2 어드레스가 상기 호스트로부터 전송될 때, 상기 선입선출 메모리에 저장된 나머지 데이터를 상기 호스트로 전송하는 단계를 포함한다.
이 실시예에 있어서, 상기 호스트로부터 전송된 제 2 어드레스가 데이터 폭-얼라인된 어드레스일 때, 버스 사용을 요청하는 단계와 상기 호스트로 전송하는 단계가 다시 수행된다.
이 실시예에 있어서, n-비트 버스에서 상기 인터페이스 장치로 m-비트 데이터가 전송되는 단일 전송 모드 동안, 상기 호스트로부터 어드레스가 입력되면 버스 중재기에 버스 사용을 요청하는 단계와; 그리고 상기 버스 사용이 허용되면, 상기어드레스에 대응하는 m-비트 데이터가 상기 n-비트 버스에서 상기 호스트로 전송되게 하는 단계를 더 포함한다.
이하 본 발명의 바람직한 실시예가 참조 도면들에 의거하여 상세히 설명될 것이다.
도 1은 본 발명에 따른 복합칩을 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 복합칩 (SOC, 100)은 PCMCIA 블록 (110), 메모리 컨트롤러 (memory controller) (120), 버스 중재기 (bus arbiter) (130), 그리고 마스터들 (masters) (140, 150)을 포함한다. 복합칩 (100)은 n-비트 버스 (160) (n은 32, 64, 또는 그 보다 큰 정수)를 가지며, 상기 n-비트 버스 (160)에는 PCMCIA 블록 (110), 메모리 컨트롤러 (120), 버스 중재기 (130), 그리고 마스터들 (140, 150)이 연결되어 있다. 이 실시예에 있어서, 복합칩 (100)은 32-비트 버스 (160)를 갖는다. PCMCIA 블록 (110)은, 예를 들면, 16-비트 단위로 호스트 (200)와 인터페이스하고, 메모리 컨트롤로 (120)는 외부 메모리 (300)의 읽기/쓰기 동작을 제어한다. 마스터들 (140, 150)은 PCI, DMA. MCU, 그리고 버스를 장악할 수 있는 장치들을 포함한다.
이러한 버스 구조에 있어서, 복합칩 (100) 내의 데이터 전송은 고속 버스 (160)를 이용하여 이루어지며, PCMCIA 블록 (110)이 데이터를 전송하는 동안 다른 마스터는 고속 버스 (160)를 사용하여 데이터를 전송할 수 없다. 마찬가지로, 다른 마스터가 고속 버스 (160)를 사용하고 있는 경우, PCMCIA 블록 (110) 역시 데이터를 전송할 수 없다. 따라서 전체적인 시스템의 성능을 높이기 위해서는 각각의 마스터가 데이터를 전송하기 위해서 고속 버스 (160)를 얼마나 효율적으로 공유하는지에 달려 있다.
도 2는 본 발명의 바람직한 실시예에 따른 PCMCIA 블록을 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 PCMCIA 블록 (110)은 복합칩 (100) 내에 집적되며, 8-비트/16-비트 단위로 호스트 (200)와 인터페이스한다. 본 발명에 따른 PCMCIA 블록 (110)은 다양한 전송 모드들을 갖는다. 예를 들면, 본 발명의 PCMCIA 블록 (110)은 단일 전송 모드 (single transfer mode)와 멀티 전송 모드 (multi-transfer mode)를 포함한다. 단일 전송 모드의 경우, PCMCIA 블록 (110)은 호스트 (200)로부터 전송되는 8-비트/16-비트 데이터를 복합칩 (100)의 버스 (160)로 직접 전달한다. 멀티 전송 모드의 경우, PCMCIA 블록 (110)은 호스트 (200)로부터 전송되는 8-비트/16-비트 데이터를 연속적으로 받아들이고, 그렇게 입력된 데이터를 내부의 저장 장치에 임시적으로 저장하며, 복합칩 (100)의 버스 폭에 대응하는 데이터 양이 모두 전달될 때 상기 임시적으로 저장된 데이터를 복합칩 (100)의 버스 (160)로 전달한다. 복합칩 (100)의 버스 폭 (bus width)에 대응하는 데이터 양 (32-비트/64-비트 버스 폭을 갖는 경우, 32-비트/64-비트 데이터)이 모두 전달될 때까지 버스 (160)는 다른 마스터 장치에 의해서 사용될 수 있다.
계속해서 도 2를 참조하면, PCMCIA 블록 (110)은 모드 레지스터 (mode register) (500), PCMCIA 기능 제어 회로 (PCMCIA function control circuit) (510), 어드레스 점검 회로 (address checking circuit) (520), 쓰기 유한 상태 머신 (write Finite State Machine) (530), 읽기 유한 상태 머신 (read Finite State Machine) (540), 선입선출 버퍼 (First-In First-Out buffer) (550), 그리고 버스인터페이스 (bus interface) (110)를 포함한다.
플래그 신호 발생 회로로서, 상기 모드 레지스터 (500)는 PCMCIA 블록 (110)이 멀티 전송 모드로 동작하는 지 또는 단일 전송 모드로 동작하는 지의 여부를 나타내는 모드 플래그 신호 (MULTI_MODE)를 출력한다. 모드 플래그 신호 (MULTI_MODE)의 로직 상태는 호스트 (200)로부터 전달되는 어드레스, 데이터 그리고 제어 신호들에 의해서 프로그램된다. PCMCIA 기능 제어 회로 (510)는 PCMCIA 블록의 기본적인 기능들을 제어하는 것으로, 그것에 대한 설명은 여기서 생략될 것이다. 어드레스 점검 회로 (520)는 모드 플래그 신호 (MULTI_MODE)에 응답하여 동작한다. 예를 들면, 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때, 어드레스 점검 회로 (520)는 호스트 (200)로부터 전달되는 어드레스 (ADD)를 버스 인터페이스 (560)로 바로 전달한다. 모드 플래그 신호 (MULTI_MODE)가 멀티 전송 모드를 나타낼 때, 어드레스 점검 회로 (520)는 현재 입력된 어드레스가 버스 (160)의 데이터 폭에 얼라인된 (aligned) 어드레스인지 여부를 나타내는 검출 신호 (DET_WA0)를 출력한다. 즉, 멀티 전송 모드시, 어드레스 점검 회로 (520)는 현재 입력된 어드레스가 데이터 폭-얼라인된 어드레스 (data width aligned address)인 지의 여부를 검출한다. 이후, 어드레스 점검 회로 (520)는 다음에 입력된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 검출 신호 (DET_WA1)를 출력한다.
쓰기 유한 상태 머신 (이하, "쓰기 FSM"이라 칭함) (530)은 호스트 (200)로부터 제어 신호들을 받아들이고, 모드 레지스터 (500)에서 출력되는 모드 플래그신호 (MULTI_MODE)에 응답하여 동작한다. 쓰기 FSM (530)은 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때 호스트 (200)로부터 전달된, 쓰기 동작과 관련된, 제어 신호들을 복합칩 (100)의 통신 프로토콜에 적합하게 변환한다. 쓰기 FSM (530)은 모드 플래그 신호 (MULTI_MODE)가 멀티 전송 모드를 나타낼 때 제 1 및 제 2 검출 신호들 (DET_WA0, DET_WA1)에 응답하여 현재 입력된 데이터가 선입선출 버퍼 (이후, "FIFO 버퍼"라 칭함) (550)에 임시 저장되게 한다. 마찬가지로, 쓰기 FSM (530)은 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때 호스트 (200)로부터 전달된, 쓰기 동작과 관련된, 제어 신호들을 복합칩 (100)의 통신 프로토콜에 적합하게 변환한다.
읽기 유한 상태 머신 (이하, "읽기 FSM"이라 칭함) (540)은 호스트 (200)로부터 제어 신호들을 받아들이고, 모드 레지스터 (500)에서 출력되는 모드 플래그 신호 (MULTI_MODE)에 응답하여 동작한다. 읽기 FSM (540)은 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때 호스트 (200)로부터 전달된, 읽기 동작과 관련된, 제어 신호들을 복합칩 (100)의 통신 프로토콜에 적합하게 변환한다. 읽기 FSM (540)은 모드 플래그 신호 (MULTI_MODE)가 멀티 전송 모드를 나타낼 때 제 1 및 제 2 검출 신호들 (DET_WA0, DET_WA1)에 응답하여 FIFO 버퍼 (550)에 임시 저장된 데이터가 호스트 (200)로 전달되게 한다. 마찬가지로, 읽기 FSM (540)은 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때 호스트 (200)로부터 전달된, 읽기 동작과 관련된, 제어 신호들을 복합칩 (100)의 통신 프로토콜에 적합하게 변환한다. 여기서, 쓰기 FSM (530)과 읽기 FSM (540)은 FIFO 버퍼 (550)의 읽기/쓰기 동작을 제어하기 위한 제어 회로로 동작한다. 이는 이후 상세히 설명될 것이다.
FIFO 버퍼 (550)는 임시적으로 데이터를 저장하며, 복합칩 (100)의 버스 폭에 대응하는 용량을 갖는다. 예를 들면, 버스 폭이 32-비트 데이터 폭이면, FIFO 버퍼 (550)는 32-비트 데이터를 저장할 수 있는 용량을 갖는다. 잘 알려진 바와 같이, FIFO 버퍼 (550)는 SRAM 셀 또는 플립플롭 (flip-flop)을 이용하여 구현될 수 있다. FIFO 버퍼 (550)는 쓰기 제어 로직 (write control logic) (551), 읽기 제어 로직 (read control logic) (552), 그리고 레지스터 (register) (553)를 포함한다. 쓰기 제어 로직 (551)은 쓰기 FSM (530) 또는 읽기 FSM (540)의 제어에 따라 데이터가 순차적으로 레지스터 (553)에 저장되게 한다. 읽기 제어 로직 (552)은 쓰기 FSM (530) 또는 읽기 FSM (540)의 제어에 따라 레지스터 (553)에 저장된 데이터가 순차적으로 출력되게 한다.
도 3은 호스트로부터의 데이터가 외부 메모리에 저장될 때 PCMCIA 블록의 동작을 설명하기 위한 흐름도이다. 설명의 편의를 위해서, PCMCIA 블록 (110)은 16-비트 단위로 호스트 (200)와 인터페이스하며, 복합칩 (100)의 버스는 32-비트 데이터 폭을 갖는다고 가정하자.
먼저, 도 3에 도시된 바와 같이, PCMCIA 블록 (110)의 데이터 전송 모드가 멀티 전송 모드인 지의 여부가 판별된다 (S100). PCMCIA 블록 (110)의 데이터 전송 모드는, 앞서 설명된 바와 같이, 모드 플래그 신호 (MULTI_MODE)를 출력하는 모드 레지스터 (500)가 호스트 (200)로부터 출력되는 어드레스, 데이터 그리고 제어 신호들에 의해서 프로그램됨에 따라 결정된다. 즉, 프로그램에 따라 모드 플래그 신호 (MULTI_MODE)의 로직 상태가 결정된다. 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때, 쓰기 FSM (530)는 버스 중재기 (130)에게 버스 사용을 요청한다 (S110). 만약 PCMCIA 블록 (110)의 버스 사용이 허용되면, 호스트 (200)로부터 전송되는 어드레스 및 16-비트 데이터는 쓰기 FSM (530)의 제어 하에 버스 인터페이스를 통해 버스 (160)로 전송된다 (S120). 이와 동시에, 쓰기 FSM (530)은 호스트 (200)로부터 전송되는 제어 신호들을 버스 (160)의 통신 프로토콜에 적합하게 변환하고, 변환된 제어 신호들을 버스 (160)로 전달한다. 이후, 버스 (160)에 전달된 16-비트 데이터는 잘 알려진 방법에 따라, 메모리 컨트롤러 (120)의 제어 하에 외부 메모리 (300)에 저장된다. 단일 전송 모드에서, FIFO 버퍼 (550)는 동작하지 않는다.
만약 PCMCIA 블록 (110)의 데이터 전송 모드가 멀티 전송 모드이면, 어드레스 점검 회로 (520)는 제 1 어드레스가 데이터 폭/워드/더블 워드 얼라인된 어드레스 (data width/word/double word aligned address)인 지의 여부를 점검한다 (S130). 이 실시예에 있어서, 복합칩 (100)의 버스 (160)가 32-비트 데이터 폭을 갖기 때문에, 어드레스 점검 회로 (520)는 제 1 어드레스가 워드-얼라인된 어드레스인 지의 여부를 점검한다. 제 1 어드레스가 워드-얼라인된 어드레스인지의 여부는 제 1 어드레스 중 2개의 최하위 비트들이 "00"인지를 판별함으로써 결정된다. 만약 제 1 어드레스가 워드-얼라인된 어드레스가 아니면, PCMCIA 블록 (110)은 워드-얼라인된 어드레스가 입력될 때까지 대기한다. 만약 제 1 어드레스가 워드-얼라인된 어드레스이면, 어드레스 점검 회로 (520)는 제 1 어드레스가 워드-얼라인된 어드레스임을 나타내는 검출 신호 (DET_WA0)를 활성화킨다. 기입 FSM (520)은 활성화된 검출 신호 (DET_WA0)에 응답하여 FIFO 버퍼 (550)를 제어한다. 즉, 현재 전달된 16-비트 데이터는 쓰기 제어 로직 (551)의 제어 하에 레지스터 (553)에 저장된다 (S140).
계속해서 어드레스 점검 회로 (520)는 호스트 (200)로부터 전송된 제 2 어드레스가 워드-얼라인된 어드레스인 지의 여부를 점검한다 (S150). 만약 제 2 어드레스가 워드-얼라인된 어드레스이면, 현재 전달된 16-비트 데이터는 쓰기 제어 로직 (551)의 제어 하에 레지스터 (553)에 저장된다 (S140). 이때, 현재 입력된 16-비트 데이터는 이전에 입력된 데이터 위에 쓰여진다. 즉, 연속해서 워드-얼라인된 어드레스들이 입력되는 경우, 이전의 워드-얼라인된 어드레스에 대응하는 16-비트 데이터는 현재의 워드-얼라인된 어드레스에 대응하는 16-비트 데이터에 의해서 초기화된다. S150 단계에서, 제 2 어드레스가 워드-얼라인된 어드레스가 아니면, 제 2 어드레스가 워드-얼라인된 어드레스 범위에 속하는 지의 여부가 판별된다 (S160). 만약 그렇지 않으면, 현재의 데이터 전송 동작은 종료된다.
만약 제 2 어드레스가 워드-얼라인된 어드레스 범위에 속하면, 현재 전송된 16-비트 데이터는 쓰기 제어 로직 (551)의 제어 하에 레지스터 (553)에 저장된다 (S170). 즉, 어드레스 점검 회로 (520)는 제 2 어드레스가 워드-얼라인된 어드레스 범위에 속함을 나타내는 제 2 검출 신호 (DET_WA1)를 활성화시키며, 쓰기 FSM (530)은 활성화된 검출 신호 (DET_WA1)에 응답하여 현재 전송된 16-비트 데이터가쓰기 제어 로직 (551)의 제어 하에 레지스터 (553)에 저장되게 한다. 호스트 (200)로부터 전달되는 제 1 및 제 2 어드레스들은 워드-얼라인된 어드레스 범위 내에서 독립적이어야 한다. 따라서 FIFO 버퍼 (550)에는 32-비트 데이터가 임시적으로 저장되어 있다.
이후, 쓰기 FSM (530)는 버스 중재기 (130)에게 버스 사용을 요청한다 (S180). 만약 PCMCIA 블록 (110)의 버스 사용이 허용되면, 어드레스 점검 회로 (520)에 임시 저장된 워드-얼라인된 어드레스 (즉, 제 1 어드레스)는 버스 인터페이스 (560)를 통해 버스 (160) 상에 실린다 (S190). FIFO 버퍼 (550)에 저장된 32-비트 데이터는 쓰기 FSM (530)의 제어 하에 버스 (160)에 실린다 (S200). 쓰기 FSM (530)은 호스트 (200)로부터 전송되는 제어 신호들을 버스 (160)의 통신 프로토콜에 적합하게 변환하고, 변환된 제어 신호들을 버스 (160)로 전달한다. 이후, 버스 (160)에 전달된 32-비트 데이터는 잘 알려진 방법에 따라, 메모리 컨트롤러 (120)의 제어 하에 외부 메모리 (300)에 저장된다.
도 4a는 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 데이터 쓰기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면이다. 도 4a에서, PCMCIA 블록 (110)이 호스트 (200)와 16-비트 단위로 인터페이스하는 단일 전송 모드의 경우, 32-비트 데이터를 버스 (160)로 전송하는 것은 다음과 같은 과정을 통해 이루어진다. 먼저, 첫번째 어드레스 (ADD1)가 호스트 (200)에서 PCMCIA 블록 (110)으로 전달되면, PCMCIA 블록 (110)은 버스 중재기 (130)에 버스 사용을 요청한다. 버스 사용이 허용되면, 첫번째 어드레스와 16-비트 데이터가 버스 (160) 상에 실린다. 그 다음에, 두번째 어드레스 (ADD2)가 호스트 (200)에서 PCMCIA 블록 (110)으로 전달되면, PCMCIA 블록 (110)은 버스 중재기 (130)에 버스 사용을 다시 요청한다. 버스 사용이 허용되면, 두번째 어드레스와 16-비트 데이터가 버스 (160) 상에 실린다. 결과적으로, 단일 전송 모드에서 32-비트 데이터를 외부 메모리로 전송하고자 하는 경우, PCMCIA 블록 (110)은 버스 (160)를 2번 사용하여 한다.
PCMCIA 블록 (110)이 호스트 (200)와 16-비트 단위로 인터페이스하는 멀티 전송 모드의 경우, 32-비트 데이터를 버스 (160)로 전송하는 것은 다음과 같은 과정을 통해 이루어진다. 먼저, 첫번째 어드레스 또는 워드-얼라인된 어드레스 (WAA)가 호스트 (200)로부터 PCMCIA 블록 (110)으로 전송되면, 워드-얼라인된 어드레스 (WAA)에 대응하는 16-비트 데이터 (D1D0)는 FIFO 버퍼 (550)에 임시 저장된다. 그 다음에, 워드-얼라인된 어드레스 범위 내에 속하는 어드레스 (WAA')가 호스트 (200)로부터 PCMCIA 블록 (110)으로 전송되면, 다음 어드레스 (WAA')에 대응하는 16-비트 데이터 (D3D2)는 FIFO 버퍼 (550)에 임시 저장된다. 이와 동시에, PCMCIA 블록 (110)은 버스 중재기 (130)에 버스 사용을 요청한다. 버스 사용이 허용되면, FIFO 버퍼 (550)에 저장된 32-비트 데이터가 버스 (160)상에 실린다.
즉, 멀티 전송 모드에서 32-비트 데이터를 외부 메모리로 전송하고자 하는 경우, PCMCIA 블록 (110)은 16-비트 데이터를 두번 FIFO 버퍼 (550)에 저장하고 그렇게 저장된 32-비트 데이터를 버스 (160)로 전달함으로써 32-비트 버스 (160)를 한번 사용한다. 그러므로 본 발명에 따른 PCMCIA 블록 (110)을 이용하여 데이터를 전송하는 경우, 복합칩 (100)의 버스 (160)는 고속의 마스터에 의해서 더 많이 사용될 수 있다. 즉, 시스템 성능이 향상될 수 있다.
멀티 전송 모드의 쓰기 동작시에 호스트 (200)가 첫번째 16-비트 데이터를 전송한 후 미리 지정한 시간 내에 두번째 16-비트 데이터를 전송하지 않으면, PCMCIA 블록 (110)은 인터럽트 신호와 인터럽트 상태 레지스터 (미도시됨)를 통해 호스트 (200)에 데이터 전송 페일임을 알리게 된다. 이는 호스트 (200)에서 오류로 인해 두번째 데이터를 전송하지 않을 경우 시스템이 행-업 상태 (hang-up state)에 빠지는 것을 방지하고, 호스트 (200)에게 올바른 데이터 전송을 다시 요구하기 위함이다. 초기 어드레스 조건 (어드레스가 워드-얼라인되어야 한다는 조건)을 만족하는 상태에서 이후 어드레스 입력 순서는 워드-얼라인된 어드레스 범위 내에서 상관없다.
도 4b는 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 데이터 쓰기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면이다. PCMCIA 블록 (110)이 호스트 (200)와 8-비트 단위로 인터페이스하는 단일 전송 모드에서 32-비트 데이터를 버스 (160)로 전송할 때, 도 4b에 도시된 바와 같이, 4번의 버스 요청이 필요하다. 이와 반대로, PCMCIA 블록 (110)이 호스트 (200)와 8-비트 단위로 인터페이스하는 멀티 전송 모드에서 32-비트 데이터를 버스 (160)로 전송할 때, 도 4b에 도시된 바와 같이, 한번의 버스 요청이 필요하다.
도 5는 외부 메모리로부터 읽혀진 데이터가 호스트로 전달될 때 PCMCIA 블록의 동작을 설명하기 위한 흐름도이다. 설명의 편의를 위해서, PCMCIA 블록 (110)은 16-비트 단위로 호스트 (200)와 인터페이스하며, 복합칩 (100)의 버스는 32-비트데이터 폭을 갖는다고 가정하자.
먼저, 도 5에 도시된 바와 같이, PCMCIA 블록 (110)의 데이터 전송 모드가 멀티 전송 모드인 지의 여부가 판별된다 (S210). 이는, 앞서 설명된 바와 같이, 모드 플래그 신호 (MULTI_MODE)를 출력하는 모드 레지스터 (500)가 호스트 (200)로부터 출력되는 어드레스, 데이터 그리고 제어 신호들에 의해서 프로그램됨에 따라 결정된다. 즉, 프로그램에 따라 모드 플래그 신호 (MULTI_MODE)의 로직 상태가 결정된다. 모드 플래그 신호 (MULTI_MODE)가 단일 전송 모드를 나타낼 때, 읽기 FSM (540)는 버스 중재기 (130)에게 버스 사용을 요청한다 (S210). 만약 PCMCIA 블록 (110)의 버스 사용이 허용되면, 호스트 (200)로부터 전송되는 어드레스는 읽기 FSM (540)의 제어 하에 버스 인터페이스 (560)를 통해 버스 (160)로 전송된다 (S220). 이와 동시에, 읽기 FSM (530)은 호스트 (200)로부터 전송되는 제어 신호들을 버스 (160)의 통신 프로토콜에 적합하게 변환하고, 변환된 제어 신호들을 버스 (160)로 전달한다. 이후, 16-비트 데이터는 메모리 컨트롤러 (120)의 제어 하에 외부 메모리 (300)로부터 읽혀지고, 그렇게 읽혀진 16-비트 데이터는 PCMCIA 블록 (110)을 통해 호스트 (200)로 전달된다. 단일 전송 모드에서, FIFO 버퍼 (550)는 동작하지 않는다.
만약 PCMCIA 블록 (110)의 데이터 전송 모드가 멀티 전송 모드이면, 어드레스 점검 회로 (520)는 제 1 어드레스로서 현재 입력된 어드레스가 워드-얼라인된 어드레스인 지의 여부를 점검한다 (S240). 제 1 어드레스가 워드-얼라인된 어드레스인지의 여부는 제 1 어드레스의 2개의 최하위 비트들이 "00"인지를 판별함으로써결정된다. 만약 제 1 어드레스가 워드-얼라인된 어드레스가 아니면, PCMCIA 블록 (110)은 워드-얼라인된 어드레스가 입력될 때까지 대기한다. 만약 제 1 어드레스가 워드-얼라인된 어드레스이면, 읽기 FSM (540)은 버스 중재기 (130)에게 버스 사용을 요청한다 (S250). 버스 사용이 승인되면, 호스트 (200)로부터 전송된 워드-얼라인된 제 1 어드레스가 버스 인터페이스 (560)를 통해 버스 (160)에 실린다 (S260). 이와 동시에, 읽기 FSM (540)는 호스트 (200)로부터 전송된 제어 신호들을 통신 프로토콜에 적합하게 변환하며, 그렇게 변환된 제어 신호들은 버스 인터페이스 (560)를 통해 버스 (160)에 실린다.
이후, 외부 메모리 (300)에 저장된 데이터는 메모리 컨트롤러 (120)의 제어 하에 읽혀지고, 읽혀진 데이터는 버스 (160) 상에 실린다. 이때, 데이터는 32-비트 단위로 읽혀진다. 버스 (160) 상에 실린 32-비트 데이터는 읽기 FSM (540)의 제어 하에 FIFO 버퍼 (550)에 저장된다 (S270). 이와 동시에, 호스트 (200)로부터 전달되었던 워드-얼라인된 제 1 어드레스에 대응하는 16-비트 데이터는 호스트 (200)로 전송된다.
계속해서 어드레스 점검 회로 (520)는 호스트 (200)로부터 전송된 제 2 어드레스가 워드-얼라인된 어드레스인 지의 여부를 점검한다 (S280). 만약 제 2 어드레스가 워드-얼라인된 어드레스이면, 절차는 S250 단계로 진행한다. 즉, 현재 전송된 워드-얼라인된 어드레스를 이용하여 읽기 동작이 앞서 설명된 것과 동일하게 다시 시작된다. 제 2 어드레스가 워드-얼라인된 어드레스가 아니면, 제 2 어드레스가 워드-얼라인된 어드레스 범위에 속하는 지의 여부가 판별된다 (S290). 만약 그렇지않으면, 데이터 전송 동작은 종료된다. 만약 제 2 어드레스가 워드-얼라인된 어드레스 범위에 속하면, 나머지 16-비트 데이터는 읽기 FSM (540)의 제어 하에 호스트 (200)로 전송된다 (S300).
도 6a은 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 외부 메모리의 데이터 읽기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면이다. 도 6a에서, PCMCIA 블록 (110)이 호스트 (200)와 16-비트 단위로 인터페이스하는 단일 전송 모드의 경우, PCMCIA 블록 (110)은 호스트 (200)로부터 제 1 어드레스 (ADD1)가 입력될 때 버스 중재기 (130)에 버스 사용을 요청한다. 버스 사용이 허용되면, 외부 메모리 (300)의 읽기 동작이 수행될 것이다. 외부 메모리 (300)로부터의 데이터는 메모리 컨트롤러 (120), 버스 (160), 그리고 PCMCIA 블록 (110)을 통해 호스트 (200)로 전달된다. PCMCIA 블록 (110)은 호스트 (200)로부터 제 2 어드레스 (ADD2)가 입력될 때 버스 중재기 (130)에 버스 사용을 다시 요청한다. 버스 사용이 허용되면, 외부 메모리 (300)의 읽기 동작이 수행될 것이다. 외부 메모리 (300)로부터의 데이터는 메모리 컨트롤러 (120), 버스 (160), 그리고 PCMCIA 블록 (110)을 통해 호스트 (200)로 전달된다. 결과적으로, 단일 전송 모드에서 32-비트 데이터를 외부 메모리 (300)로부터 읽는 경우, PCMCIA 블록 (110)은 버스 (160)를 2번 사용하여 한다.
PCMCIA 블록 (110)이 호스트 (200)와 16-비트 단위로 인터페이스하는 멀티 전송 모드의 경우, 먼저, 워드-얼라인된 어드레스 (WAA)가 호스트 (200)에서 PCMCIA 블록 (110)으로 전송된다. PCMCIA 블록 (110)은 버스 중재기 (130)에 버스사용을 요청한다. 버스 사용이 허용되면, 워드-얼라인된 어드레스가 버스 (160) 상에 실린다. 이후, 32-비트 데이터가 메모리 컨트롤러 (120)의 제어 하에 외부 메모리 (300)에서 읽혀지고, 그렇게 읽혀진 데이터는 PCMCIA 블록 (110)의 FIFO 버퍼 (550)에 임시 저장된다. 이와 동시에, 읽혀진 32-비트 데이터 중 일부, 즉 16-비트 데이터는 호스트 (200)로 전송된다. 그 다음에, 워드-얼라인된 어드레스 범위에 속하는 어드레스 (WAA')가 호스트 (200)에서 PCMCIA 블록 (110)으로 전송되면, 나머지 16-비트 데이터가 호스트 (200)로 전송된다.
즉, 멀티 전송 모드에서 32-비트 데이터를 외부 메모리에서 호스트로 전송하고자 하는 경우, PCMCIA 블록 (110)의 FIFO 버퍼 (550)에 한번에 32-비트 데이터를 저장하고 그렇게 저장된 데이터를 호스트 (200)로 전송함으로써 PCMCIA 블록 (110)은 32-비트 버스 (160)를 한번 사용한다. 그러므로 본 발명에 따른 PCMCIA 블록 (110)을 이용하여 데이터를 전송하는 경우, 복합칩 (100)의 버스 (160)는 고속의 마스터에 의해서 더 많이 사용될 수 있다.
도 6b는 본 발명의 멀티 전송 방식과 일반적인 단일 전송 방식을 이용하여 데이터 읽기 동작을 수행할 때 버스 요청 횟수를 보여주는 도면이다. PCMCIA 블록 (110)이 호스트 (200)와 8-비트 단위로 인터페이스하는 단일 전송 모드에서 32-비트 데이터를 호스트 (200)로 전송할 때, 도 6b에 도시된 바와 같이, 4번의 버스 요청이 필요하다. 이와 반대로, PCMCIA 블록 (110)이 호스트 (200)와 8-비트 단위로 인터페이스하는 멀티 전송 모드에서 32-비트 데이터를 호스트 (200)로 전송할 때, 도 6b에 도시된 바와 같이, 한번의 버스 요청이 필요하다. 그러므로 버스 성능이향상될 수 있다.
본 발명에 따른 복합칩의 실시예는 32-비트 버스 시스템을 이용하여 설명되었지만, 64-비트 버스 시스템 또는 그 보다 큰 데이터 폭을 갖는 버스 시스템에 적용됨은 자명하다. 저속으로 동작하면서 좁은 데이터 폭을 갖는 마스터 또는 슬레이브에도 본 발명이 적용될 수 있으며, 본 발명에 따른 효과는 많은 양의 데이터를 연속적으로 처리해야 하는 경우 더욱 더 크다. 이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 32-비트 버스 시스템에서 8-비트/16-비트 단위로 4번/2번 데이터를 전송하는 단일 전송 모드의 경우 PCMCIA 블록 (110)은 버스 요구 (bus request)를 4번 수행하여 데이터를 전송하게 된다. 반면에 32-비트 FIFO 버퍼를 사용하여 32-비트 데이터를 한번에 전송함으로써 PCMCIA 블록 (110)은 버스 요구를 한번 수행하여 데이터를 전송하게 된다. 이는 다른 버스를 사용할 수 있는 기회를 다른 마스터에 제공함으로써 전체적인 시스템 즉, 복합칩의 성능을 높일 수 있다.

Claims (24)

  1. 호스트와 m-비트 단위로 인터페이스하는 인터페이스 장치에 있어서:
    데이터를 저장하기 위한 선입선출 메모리와;
    상기 인터페이스 장치의 데이터 전송 모드가 멀티 전송 모드인 지의 여부를 나타내는 모드 플래그 신호를 발생하되, 상기 멀티 전송 모드에서는 n-비트 데이터 (여기서, n은 m의 정수배)가 상기 인터페이스 장치에서 n-비트 버스로 전송되는 플래그 신호 발생 회로와;
    상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스인지 여부를 나타내는 제 1 검출 신호와 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 제 2 검출 신호를 발생하는 어드레스 점검 회로와; 그리고
    상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 제 1 및 제 2 검출 신호들에 응답하여 상기 호스트로부터 전달되는 m-비트 데이터가 연속적으로 상기 선입선출 메모리에 저장되게 하는 제어 회로를 포함하며,
    상기 제어 회로는 상기 선입선출 메모리에 상기 n-비트 데이터가 모두 저장될 때 상기 선입선출 메모리에 저장된 n-비트 데이터가 버스 인터페이스를 통해 한번에 상기 n-비트 버스로 전달되게 하는 것을 특징으로 하는 인터페이스 장치.
  2. 제 1 항에 있어서,
    상기 호스트로부터 데이터 폭-얼라인된 어드레스들이 연속적으로 입력될 때, 상기 제어 회로는 상기 선입선출 메모리를 초기화함과 동시에 상기 후자의 데이터 폭-얼라인된 어드레스에 대응하는 m-비트 데이터가 상기 선입선출 메모리에 저장되게 하는 것을 특징으로 하는 인터페이스 장치.
  3. 제 1 항에 있어서,
    상기 플래그 신호 발생 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드와 단일 전송 모드 중 어느 하나를 나타내도록 상기 호스트에 의해서 프로그램되며, 상기 단일 전송 모드에서는 상기 호스트로부터 전송되는 m-비트 데이터가 직접 상기 n-비트 버스로 전송되는 것을 특징으로 하는 인터페이스 장치.
  4. 제 1 항에 있어서,
    상기 멀티 전송 모드시 상기 n-비트 버스로부터 n-비트 데이터가 전송될 때, 상기 제어 회로는 상기 n-비트 데이터가 상기 선입선출 메모리에 저장되게 하는 것을 특징으로 하는 인터페이스 장치.
  5. 제 4 항에 있어서,
    상기 n-비트 버스로부터 전송된 n-비트 데이터가 상기 선입선출 메모리에 저장됨과 동시에, 상기 n-비트 데이터 중 m-비트 데이터는 상기 호스트로 전송되는것을 특징으로 하는 인터페이스 장치.
  6. 제 5 항에 있어서,
    상기 멀티 전송 모드시 데이터 폭-얼라인된 어드레스 범위에 속하는 어드레스가 상기 호스트로부터 입력될 때, 상기 선입선출 메모리에 저장된 나머지 데이터가 상기 호스트로 전송되는 것을 특징으로 하는 인터페이스 장치.
  7. 제 1 항 또는 제 3 항에 있어서,
    상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 호스트로부터 전송되는 m-비트 데이터는 바로 상기 n-비트 버스로 전송되는 것을 특징으로 하는 인터페이스 장치.
  8. 제 1 항에 있어서,
    상기 선입선출 메모리에 대한 읽기/쓰기 동작은 데이터 폭-얼라인된 어드레스 범위 내에서는 어드레스 순서에 관계없이 수행되는 것을 특징으로 하는 인터페이스 장치.
  9. 제 1 항 또는 제 3 항에 있어서,
    상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 n-비트 버스로부터 전송되는 m-비트 데이터는 상기 호스트로부터 바로 전송되는 것을 특징으로 하는 인터페이스 장치.
  10. n-비트 버스와;
    상기 n-비트 버스를 중재하는 버스 중재기와;
    상기 n-비트 버스에 연결되며, 호스트와 m-비트 단위 (여기서, n은 m의 정수배)로 인터페이스하는 인터페이스 장치와; 그리고
    상기 버스에 연결되며, 외부 메모리의 액세스를 제어하는 메모리 컨트롤러를 포함하며, 상기 인터페이스 장치는
    데이터를 저장하기 위한 선입선출 메모리와;
    상기 인터페이스 장치의 데이터 전송 모드가 멀티 전송 모드인 지의 여부를 나타내는 모드 플래그 신호를 발생하되, 상기 멀티 전송 모드에서는 n-비트 데이터 (여기서, n은 m의 정수배)가 상기 인터페이스 장치에서 n-비트 버스로 전송되는 플래그 신호 발생 회로와;
    상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스인지 여부를 나타내는 제 1 검출 신호와 상기 호스트로부터 전달된 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속하는 지의 여부를 나타내는 제 2 검출 신호를 발생하는 어드레스 점검 회로와; 그리고
    상기 모드 플래그 신호가 상기 멀티 전송 모드를 나타낼 때, 상기 제 1 및 제 2 검출 신호들에 응답하여 상기 호스트로부터 전달되는 m-비트 데이터가 연속적으로 상기 선입선출 메모리에 저장되게 하는 제어 회로를 포함하며,
    상기 제어 회로는 상기 선입선출 메모리에 상기 n-비트 데이터가 모두 저장될 때 상기 버스 중재기에 버스 사용을 요구하고, 상기 버스 사용이 허용되면 상기 선입선출 메모리에 저장된 n-비트 데이터가 버스 인터페이스를 통해 한번에 상기 n-비트 버스로 전달되게 하는 복합칩.
  11. 제 10 항에 있어서,
    상기 호스트로부터 데이터 폭-얼라인된 어드레스들이 연속적으로 입력될 때, 상기 제어 회로는 상기 선입선출 메모리를 초기화함과 동시에 상기 후자의 데이터 폭-얼라인된 어드레스에 대응하는 m-비트 데이터가 상기 선입선출 메모리에 저장되게 하는 복합칩.
  12. 제 10 항에 있어서,
    상기 플래그 신호 발생 회로는 상기 모드 플래그 신호가 상기 멀티 전송 모드와 단일 전송 모드 중 어느 하나를 나타내도록 상기 호스트에 의해서 프로그램되며, 상기 단일 전송 모드에서는 상기 호스트로부터 전송되는 m-비트 데이터가 직접 상기 n-비트 버스로 전송되는 복합칩.
  13. 제 10 항에 있어서,
    상기 제어 회로는 상기 멀티 전송 모드시 상기 n-비트 버스로부터 전송되는n-비트 데이터가 상기 선입선출 메모리에 저장되게 하는 복합칩.
  14. 제 13 항에 있어서,
    상기 n-비트 버스로부터 전송된 n-비트 데이터가 상기 선입선출 메모리에 저장됨과 동시에, 상기 n-비트 데이터 중 m-비트 데이터는 상기 호스트로 전송되는 복합칩.
  15. 제 14 항에 있어서,
    상기 선입선출 메모리의 나머지 데이터는 데이터 폭-얼라인된 어드레스 범위에 속하는 어드레스가 상기 호스트로부터 입력될 때 상기 호스트로 전송되는 복합칩.
  16. 제 10 항 또는 제 12 항에 있어서,
    상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 호스트로부터 전송되는 m-비트 데이터는 바로 상기 n-비트 버스로 전송되는 복합칩.
  17. 제 10 항에 있어서,
    상기 선입선출 메모리에 대한 읽기/쓰기 동작은 데이터 폭-얼라인된 어드레스 범위 내에서는 어드레스 순서에 관계없이 수행되는 복합칩.
  18. 제 10 항 또는 제 12 항에 있어서,
    상기 모드 플래그 신호가 상기 단일 전송 모드를 나타낼 때, 상기 n-비트 버스로부터 전송되는 m-비트 데이터는 바로 상기 호스트로 전송되는 복합칩.
  19. 호스트와 m-비트 단위로 인터페이스하는 인터페이스 장치의 동작 방법에 있어서:
    상기 인터페이스 장치에서 n-비트 버스로 n-비트 데이터 (여기서, n은 m의 정수배)가 전송되는 멀티 전송 모드 동안, 상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스일 때 상기 제 1 어드레스에 대응하는 m-비트 데이터를 선입선출 메모리에 저장하는 단계와;
    상기 호스트로부터 전송된 제 2 어드레스가 데이터 폭-얼라인된 어드레스 범위에 속할 때 상기 제 2 어드레스에 대응하는 m-비트 데이터를 상기 선입선출 메모리에 저장하는 단계와;
    상기 선입선출 메모리가 상기 n-비트 데이터만큼 채워지면, 버스 중재기에 버스 사용을 요청하는 단계와; 그리고
    버스 사용이 허용될 때 상기 선입선출 메모리에 저장된 n-비트 데이터를 상기 n-비트 버스로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제 19 항에 있어서,
    상기 제 2 어드레스가 데이터 폭-얼라인된 어드레스일 때, 상기 제 2 어드레스에 대응하는 데이터는 상기 제 1 어드레스에 대응하는 데이터 상에 덮어쓰여지는 것을 특징으로 하는 방법.
  21. 제 19 항에 있어서,
    n-비트 버스로 m-비트 데이터가 전송되는 단일 전송 모드 동안, 상기 호스트로부터 어드레스가 입력되면 버스 중재기에 버스 사용을 요청하는 단계와; 그리고
    상기 버스 사용이 허용되면, 상기 어드레스에 대응하는 m-비트 데이터를 상기 n-비트 버스로 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 호스트와 m-비트 단위로 인터페이스하는 인터페이스 장치의 동작 방법에 있어서:
    n-비트 버스로부터 상기 인터페이스 장치로 n-비트 데이터 (여기서, n은 m의 정수배)가 전송되는 멀티 전송 모드 동안, 상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스인 지의 여부를 판별하는 단계와;
    상기 호스트로부터 전송된 제 1 어드레스가 데이터 폭-얼라인된 어드레스일 때, 버스 중재기에 버스 사용을 요청하는 단계와;
    상기 제 1 어드레스에 대응하는 n-비트 데이터를 선입선출 메모리에 저장함과 동시에 상기 n-비트 데이터 중 m-비트 데이터를 상기 호스트로 전송하는 단계와; 그리고
    데이터 폭-얼라인된 어드레스 범위에 속하는 제 2 어드레스가 상기 호스트로부터 전송될 때, 상기 선입선출 메모리에 저장된 나머지 데이터를 상기 호스트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  23. 제 22 항에 있어서,
    상기 호스트로부터 전송된 제 2 어드레스가 데이터 폭-얼라인된 어드레스일 때, 버스 사용을 요청하는 단계와 상기 호스트로 전송하는 단계가 다시 수행되는 것을 특징으로 하는 방법.
  24. 제 22 항에 있어서,
    n-비트 버스에서 상기 인터페이스 장치로 m-비트 데이터가 전송되는 단일 전송 모드 동안, 상기 호스트로부터 어드레스가 입력되면 버스 중재기에 버스 사용을 요청하는 단계와; 그리고
    상기 버스 사용이 허용되면, 상기 어드레스에 대응하는 m-비트 데이터가 상기 n-비트 버스에서 상기 호스트로 전송되게 하는 단계를 더 포함하는 것을 특징으로 하는 인터페이스 방법.
KR10-2002-0028063A 2002-05-21 2002-05-21 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 KR100476895B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0028063A KR100476895B1 (ko) 2002-05-21 2002-05-21 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
US10/364,140 US6898659B2 (en) 2002-05-21 2003-02-11 Interface device having variable data transfer mode and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0028063A KR100476895B1 (ko) 2002-05-21 2002-05-21 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20030090073A true KR20030090073A (ko) 2003-11-28
KR100476895B1 KR100476895B1 (ko) 2005-03-18

Family

ID=29546316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0028063A KR100476895B1 (ko) 2002-05-21 2002-05-21 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법

Country Status (2)

Country Link
US (1) US6898659B2 (ko)
KR (1) KR100476895B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558285B2 (en) 2005-02-03 2009-07-07 Samsung Electronics Co., Ltd Data processing system and data interfacing method thereof

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161907A1 (en) * 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
TW569236B (en) * 2002-10-03 2004-01-01 Via Tech Inc Multiple-grant controller with parallel arbitration mechanism and related method
DE102005026436B4 (de) * 2005-06-08 2022-08-18 Austriamicrosystems Ag Schnittstellenanordnung, insbesondere für ein System-on-Chip, und deren Verwendung
US7788420B2 (en) * 2005-09-22 2010-08-31 Lsi Corporation Address buffer mode switching for varying request sizes
US7376777B2 (en) * 2005-09-23 2008-05-20 Freescale Semiconductor, Inc. Performing an N-bit write access to an M×N-bit-only peripheral
CN101510185B (zh) * 2009-04-01 2015-08-05 北京中星微电子有限公司 一种高速总线向低速总线写入、读取数据的方法和装置
JP5359603B2 (ja) * 2009-06-25 2013-12-04 セイコーエプソン株式会社 集積回路システム、データ書き込み方法、データ読み出し方法
US20120233401A1 (en) * 2011-03-08 2012-09-13 Skymedi Corporation Embedded memory system
CN102354304B (zh) * 2011-09-22 2013-10-16 青岛海信信芯科技有限公司 数据传输方法、数据传输装置和soc芯片
CN105187899B (zh) * 2015-07-22 2018-06-29 深圳市特博赛科技有限公司 数据传输系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62182857A (ja) * 1986-02-05 1987-08-11 Nec Corp 入出力制御装置
JPH01161462A (ja) * 1987-12-17 1989-06-26 Mitsubishi Electric Corp バス・インタフェース
JPH0417051A (ja) * 1990-05-11 1992-01-21 Hitachi Ltd データ転送方式
US5535341A (en) * 1994-02-24 1996-07-09 Intel Corporation Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
SG47015A1 (en) * 1994-02-24 1998-03-20 Intel Corp Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
US5898857A (en) * 1994-12-13 1999-04-27 International Business Machines Corporation Method and system for interfacing an upgrade processor to a data processing system
KR0157924B1 (ko) * 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
US5978866A (en) * 1997-03-10 1999-11-02 Integrated Technology Express, Inc. Distributed pre-fetch buffer for multiple DMA channel device
US6292862B1 (en) * 1998-07-28 2001-09-18 Siemens Aktiengesellschaft Bridge module
KR100606698B1 (ko) * 1999-03-16 2006-07-31 엘지전자 주식회사 인터페이스 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558285B2 (en) 2005-02-03 2009-07-07 Samsung Electronics Co., Ltd Data processing system and data interfacing method thereof

Also Published As

Publication number Publication date
US20030221038A1 (en) 2003-11-27
US6898659B2 (en) 2005-05-24
KR100476895B1 (ko) 2005-03-18

Similar Documents

Publication Publication Date Title
US7363396B2 (en) Supercharge message exchanger
US6353867B1 (en) Virtual component on-chip interface
US20040019703A1 (en) Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices
KR20040044366A (ko) 공유 메모리 데이터 전송장치
EP1730643A2 (en) Pvdm (packet voice data module) generic bus protocol
WO2005008464A1 (en) Switch/network adapter port incorporating selectively accessible shared memory resources
KR100476895B1 (ko) 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
US6742142B2 (en) Emulator, a data processing system including an emulator, and method of emulation for testing a system
US6633927B1 (en) Device and method to minimize data latency and maximize data throughput using multiple data valid signals
CN114443530B (zh) 基于TileLink的芯片互联电路及数据传输方法
EP0690382B1 (en) Computer system with a multiplexed address bus and pipelined write operations
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN115982071A (zh) 一种面向ddr3控制器的片上网络转换接口
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US20080320178A1 (en) DMA transfer apparatus
US7114019B2 (en) System and method for data transmission
CN113704151A (zh) 基于TileLink总线的芯片互联架构及互联方法
CN110704349B (zh) 一种用于数据可靠传输的SpaceWire节点装置
CN112835834B (zh) 数据传输系统
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
KR0170742B1 (ko) 엠버스를 이용한 데이터 전송 방법
KR100252508B1 (ko) 통신처리시스템의 프로세서 보드에서 롬 인터페이스장치
KR100369363B1 (ko) 메모리를 이용한 호스트 시스템과 로컬 시스템 내부의마이크로컨트롤러 사이의 데이터 전송 및 수신 장치
CN116107950A (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120229

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee