KR20070070213A - 데이터 교환 방법 및 시스템 - Google Patents

데이터 교환 방법 및 시스템 Download PDF

Info

Publication number
KR20070070213A
KR20070070213A KR1020077011056A KR20077011056A KR20070070213A KR 20070070213 A KR20070070213 A KR 20070070213A KR 1020077011056 A KR1020077011056 A KR 1020077011056A KR 20077011056 A KR20077011056 A KR 20077011056A KR 20070070213 A KR20070070213 A KR 20070070213A
Authority
KR
South Korea
Prior art keywords
data
format
format converter
memory
processor
Prior art date
Application number
KR1020077011056A
Other languages
English (en)
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 KR20070070213A publication Critical patent/KR20070070213A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 적어도 하나의 공유 메모리(114)를 갖는 멀티-코어 구조에서 데이터를 교환하기 위한 방법(300) 및 시스템(100)에 관한 것이다. 본 방법은 공유 메모리내의 사전 결정된 범위의 어드레스로부터 제1 포맷의 데이터를 요청하되, 상기 데이터는 상이한 프로세서들 사이에서 공유되는 단계 (312), 포맷 변환기(120)에 의해서 검색될 캐시(118)에 상기 요청된 데이터를 저장하는 단계(316), 상기 데이터에 대한 데이터 유형을 상기 포맷 변환기로 식별하는 단계(320)를 포함할 수 있다. 본 방법은 또한 포맷 변환기를 이용하여 데이터를 처리하는 프로세서 고유의 제2 포맷으로 사전 결정된 규칙에 따라서 데이터를 변환하는 단계를 포함할 수 있다.
공유 메모리, 멀티-코어, 데이터 교환, 포맷 변환기, 캐시

Description

데이터 교환 방법 및 시스템{METHOD AND SYSTEM FOR EXCHANGING DATA}
본 발명은 데이터 교환에 관한 것으로서, 특히, 공통 메모리를 공유하는 다중 처리 코어들 사이에서 데이터를 교환하는 것에 관한 것이다.
현재 사용되는 플랫폼 구조들은 디지털 신호 처리(DSP) 코어 및 호스트 응용 처리(AP) 코어와 같은 다중 처리 코어들을 결합시킨다. 이들 두 개의 코어들은 공통 메모리로부터의 데이터를 공유하는 것으로서, 공통 메모리는 이들이 모두 그들 자체의 동작 모드에서 데이터를 처리하도록 요구한다. 예를 들어, DSP 코어는 빅 엔디안 메모리 모델(big endian memory model)을 요구할 수 있으며, AP 코어는 리틀 엔디안 구조(little endian organization)에서 동작할 수 있다. 그러나, 이들 상이한 메모리 모델들의 관점에서 데이터를 공유하는 것은 데이터가 각 모델에 로딩되는 방식으로 인해서 복잡하게 된다.
이러한 비호환성을 극복하기 위해서, 빅 엔디안과 리틀 엔디안 메모리 모델들 사이에서 데이터를 변환하는 다양한 방법들이 제안되었다. 그러나, 현재 시점까지, 그러한 변환은 소프트웨어에 촛점을 맞춘, 빅 엔디안/리틀 엔디안 메모리 모델들에 제한되었다. 이러한 방법은 상이한 메모리 구조들의 가능성을 간과하였으며 공유된 데이터에 대해 동작하도록 사용된 소프트웨어에 제한을 가하게 된다.
본 발명은 데이터 교환 방법에 관한 것이다. 이 방법은, 적어도 하나의 공유 메모리를 갖는 멀티-코어 구조에서, 데이터가 상이한 프로세서들 사이에서 공유되는 공유 메모리 내의 사전 결정된 범위의 어드레스들로부터 제1 포맷의 데이터를 요청하는 단계와, 하나의 포맷 변환기에 의해서 검색되도록 캐시에 그 요청된 데이터를 저장하는 단계를 포함할 수 있다. 이 방법은 또한 포맷 변환기로 상기 데이터에 대한 데이터 유형을 식별하며, 이 포맷 변환기를 이용하여 캐시로부터 데이터를 검색하는 단계와, 사전 결정된 규칙들에 따라서 데이터를 처리하는 프로세서 고유의 제2 포맷으로 데이터를 변환하는 단계를 포함할 수 있다. 일례로서, 이러한 사전 결정된 규칙들은 포맷 변환기에서 프로그램 가능하다.
이 방법은 데이터가 공유 메모리 내의 사전 결정된 범위의 어드레스로부터 요청될 때 포맷 변환기를 자동으로 인에이블하는 단계를 포함할 수 있다. 또한, 이 포맷 변환기가 인에이블될 때, 이 방법은 캐시가 데이터 저장하는데 전용이 되게 하는 단계와, 공유 메모리로부터 다른 명령 및 데이터 캐시들을 격리시키는 단계를 포함할 수 있다. 하나의 장치에서, 포맷 변환기의 크기는 가변적일 수 있으며, 이 방법은 포맷 변환기에서 데이터 경계 크기를 설정하는 단계를 더 포함할 수 있다. 이러한 데이터 경계 크기는 예를 들면, 버스 크기에 기반을 둘 수 있다. 이 방법은 또한 데이터를 제1 포맷으로부터 제2 포맷으로 변환하는 것이 불필요할 때 포맷 변환기를 바이패스시키는 단계를 포함할 수 있다.
또 다른 장치에서, 제1 포맷은 리틀 엔디안 메모리 모델(little endian memory model), 빅 엔디안 모델 (big ndian model) 또는 에뮬레이트된 빅 엔디안 모델에 기반을 둘 수 있으며, 제2 포맷은 변환된 리틀 엔디안 메모리 모델, 변환된 빅 엔디안 메모리 모델 또는 변환된 에뮬레이트된 빅 엔디안 메모리 모델에 기반을 둘 수 있다. 이 방법은 또한 제2 포맷으로부터 제1 포맷으로 재변환하는 단계를 포함할 수 있다. 또 다른 예로서, 데이터 유형은 바이트, 워드 및 더블 워드 중 적어도 하나가 될 수 있다. 본 발명의 또 다른 실시예에서, 멀티-코어 구조는 복수의 공유 메모리들을 포함할 수 있다. 이 방법은 각각의 공유 메모리에 대해서 사전 결정된 규칙들을 포맷 변환기로 프로그램하는 단계와, 포맷 변환기가 엑세스하는 공유 메모리 유형에 따라 사전 결정된 규칙들을 선택하는 단계를 포함할 수 있다.
본 발명은 또한 데이터 교환 시스템에 관한 것이다. 본 시스템은 제1 프로세서, 제2 프로세서, 제1 프로세서 및 제2 프로세서에 결합된 것으로서 제1 프로세서 및 제 2 프로세서가 메모리 내의 데이터 중 적어도 일부를 공유하는 적어도 하나의 메모리, 메모리에 결합된 포맷 변환기, 및 포맷 변환기에 결합된 포맷 변환기 캐시를 포함할 수 있다. 하나의 장치에서, 제1 프로세서는 메모리 내에서 사전 결정된 범위의 공유 어드레스들로부터 데이터를 요청할 수 있다. 또한, 포맷 변환기 캐시는 요청된 데이터를 인출 및 저장할 수 있으며, 포맷 변환기는 포맷 변환기 캐시로부터 데이터를 검색할 수 있다. 포맷 변환기는, 사전 결정된 규칙들에 따라서, 제1 포맷으로부터 제1 프로세서 고유의 제2 포맷으로 데이터를 변환할 수 있다. 본 시스템은 또한 전술된 프로세스들을 수행하는데 적합한 소프트웨어 및/또는 회로를 포함할 수 있다.
본 발명은 또한, 멀티-코어 구조를 갖는 휴대용 컴퓨팅 장치에 의해서 실행가능한 복수의 코드 섹션들을 갖는 컴퓨터 프로그램이 저장되는 머시인 리더블 저장 장치(machine readable storage), 및 적어도 하나의 공유 메모리에 관한 것이다. 코드 섹션들은 휴대용 컴퓨팅 장치가, 데이터가 상이한 프로세서들 사이에서 공유되는 공유 메모리에서 사전 결정된 범위의 어드레스로부터 제1 포맷의 데이터를 요청하는 단계와, 캐시에 데이터를 저장하는 단계를 수행하도록 할 수 있다. 이 코드 섹션들은 또한 휴대용 컴퓨팅 장치가, 포맷 변환기를 이용하여 그 데이터에 대한 데이터 유형을 식별하는 단계와, 포맷 변환기를 이용하여 캐시로부터 데이터를 검색하는 단계와, 사전 결정된 규칙들에 따라서 데이터를 처리하는 프로세서 고유의 제2 포맷으로 데이터를 변환시키는 단계를 수행하도록 할 수 있다. 이 코드 섹션들은 또한 휴대용 컴퓨팅 장치가 전술된 단계들을 수행하도록 할 수 있다.
신규한 것으로 간주되는 본 발명의 특징들은 첨부된 청구범위에서 특정하게 설명된다. 본 발명은, 다른 목적들 및 장점들과 함께, 동일 참조 번호는 동일 구성요소를 지칭하는 첨부된 도면을 참조하여 설명된 다음의 설명을 참조하여 가장 잘 이해될 수 있다. 즉,
도 1은 본 발명의 장치들의 일 실시예에 따른 멀티-코어 구조의 일례를 도시하며,
도 2는 본 발명의 장치들의 일 실시예에 따라서 데이터를 교환할 수 있는 시 스템의 블록도의 일례를 도시하며,
도 3은 본 발명의 장치들의 일 실시예에 따른 데이터 교환 방법을 도시하며,
도 4는 도 2의 시스템의 일부로서 본 발명의 장치들의 일 실시예에 따른 데이터 변환의 결과를 도시하며,
도 5는 도 4의 시스템의 일부로서 본 발명의 장치들의 일 실시예에 따른 다른 데이터 변환의 결과를 도시하며,
도 6은 도 4의 시스템의 일부로서 본 발명의 장치들의 일 실시예에 따른 또 다른 데이터 변환의 결과를 도시하며,
도 7은 도 4의 시스템의 일부로서 본 발명의 장치들의 일 실시예에 따른 또 다른 데이터 변환의 결과를 도시하며,
도 8은 본 발명의 장치들의 일 실시예에 따른 또 다른 데이터 교환 방법을 도시한다.
본 명세서는 신규로 간주되는 본 발명의 특징들을 규정하는 청구범위로 결론짓지만, 본 발명은 동일한 참조 번호가 일관되게 기재되는 도면과 함께 다음 설명을 고려하므로 더 쉽게 이해할 수 있을 것이다.
요구되는 바와 같이, 본 발명의 상세한 실시예들이 본 명세서에 개시되지만, 개시된 실시예들은 여러 형태로 실시될 수 있는 본 발명의 예에 불과함을 알 수 있을 것이다. 그러므로, 본 명세서에 개시된 특정 구조적 및 기능적 세부 사항들은 제한을 위한 것이 아니라, 청구범위에 대한 기초로서 그리고 실질적으로 어떤 적절 하게 세부적인 구조에서 본 발명을 다양하게 실시하기 위해서 당업자를 이해시키기 위한 대표적인 기초로서 해석되어야 한다. 더욱이, 본 명세서에 사용된 용어들 및 문구들은 발명을 제한하기 위한 것이 아니라 이해가능하도록 발명의 설명을 제공하기 위한 것이다.
본 명세서에 사용된 용어들로서 "하나(a, an)"는 하나 또는 하나 이상으로 정의된다. 본 명세서에 사용된 용어로서 "복수(plurality)"는 둘 또는 둘 이상으로 정의된다. 본 명세서에 사용된 용어로서 "또 다른(another)"은 적어도 제2의 또는 그 이상으로 정의된다. 본 명세서에 사용된 용어들로서 "포함하는 및/또는 갖는(including and/or having)"은 "포함하는(comprising)(즉, 개방형 용어)"으로 정의된다. 본 명세서에 사용된 용어로서 "결합된(coupled)"은 반드시 직접적으로는 아니고 그리고 반드시 기계적으로는 아니라 하더라도, 접속된 것으로 정의된다. 본 명세서에 사용된 용어들로서 "프로그램, 소프트웨어 응용 등(program, software application, and the like)"은 컴퓨터 시스템상에서 실행을 위해서 설계된 일련의 명령들로서 정의된다. 프로그램, 컴퓨터 프로그램, 또는 소프트웨어 응용은 서브루틴, 기능, 과정, 객체 방법, 객체 수행, 실행가능한 응용, 애플릿, 서브렛, 소스 코드, 목적 코드, 공유 라이브러리/다이나믹 로드 라이브러리 및/또는 컴퓨터상에서 실행하기 위해 설계된 다른 일련의 명령들을 포함할 수 있다.
본 발명은 데이터 교환 방법 및 시스템을 제공한다. 하나의 장치에서, 본 방법은 적어도 하나의 공유 메모리를 갖는 멀티-코어 구조에서 실시될 수 있다. 본 방법은 공유되는 공유 메모리에서 사전 결정된 범위의 어드레스들로부터 제1 포맷 의 데이터 - 이 데이터가 상이한 프로세서들 사이에서 공유됨 - 를 요청하는 단계와, 프로세서에 의해서 검색되도록 캐시에 변환된 데이터를 저장하는 단계를 포함할 수 있다. 본 방법은 또한, 상기 데이터에 대한 데이터 유형을 상기 포맷 변환기로 식별하는 단계와, 사전 결정된 규칙들에 따라서, 상기 데이터를 처리할 프로세서 고유의 제2 포맷으로 상기 데이터를 변환하는 단계를 더 포함할 수 있다. 상기 변환은 포맷 변환기로 수행될 수 있는데, 이는 상기 사전 결정된 규칙들로 프로그램될 수 있다. 상기 포맷 변환기는 데이터를 상기 제1 포맷으로 부터 상기 제2 포맷으로 변환하기 위해 적절한 유형의 규칙들로 프로그램될 수 있으며, 이러한 프로세스는 프로세서들 사이에서 데이터를 끊임없이(seamlessly) 교환하는데 사용될 수 있다.
도 1을 참조하면, 데이터를 교환하기 위한 시스템(100)이 도시된다. 이 시스템(100)은 기저대역 프로세서(BP)와 같은 제1 프로세서(110)와, 응용 프로세서(AP)가 될 수 있는 제2 프로세서(112)를 포함할 수 있다. 제1 프로세서(110)를 BP라고 하고 제2 프로세서(112)를 AP라고 하더라도, 제1 프로세서(110) 및 제2 프로세서(112)는 임의의 적절한 유형의 프로세서가 될 수 있다. 시스템(100)은 또한 버스 마스터들(1 내지 N)과 같은 하나 이상의 버스 마스터들(113)을 포함할 수 있다. BP(110), AP(112) 및 버스 마스터들(113)은 공유 메모리(114) 내의 데이터 중 적어도 일부를 공유할 수 있다. 이들이 데이터를 공유하더라도, BP(110), AP(112) 및 버스 마스터(113)는 그들 고유의 동작 모드로 데이터를 처리할 수 있다. 도시된 바와 같이, 시스템(100)은 적절한 수의 임의의 공유 메모리들(114)을 포함할 수 있다.
일 예로서, AP(112)는 리틀 엔디안 메모리 모델(LE)을 기반으로 하여 공유된 데이터를 처리하며, BP(110)는 에뮬레이트된 빅 엔디안(BE-32)이라고 하는 메모리 모델에서 공유된 데이터를 처리할 수 있다. 공지된 바와 같이, 워드-불변 또는 통합된 어드레스 엔디안니스 모드라고 하는 BE-32는, 저 순위의 어드레스 비트들이 바이트들 및 워드들과 같이, 소정의 데이터 크기에 대해서 선택적으로 플립되는 측면에서 "트루(true)" 빅 엔디안 메모리 모델(BE)과는 상이하다. 일 예로서, 공유 메모리에 저장된 데이터는 리틀 엔디안 포맷일 수 있다. 후술하는 바와 같이, 시스템(100)은 BP(110)가 BE-32 스킴과 같은, 그 고유의 동작 모드에서 데이터를 처리하도록 할 수 있다. 버스 마스터들(113)은 또한 리틀 엔디안 구성에 따라서 정보를 처리할 수 있다.
도 2를 참조하면, 시스템(100)에 대한 보다 상세한 예가 도시된다. 이 예에서, 시스템(100)은 또한 중재 로직(116), 포맷 변환기 캐시(118) 및 포맷 변환기(120)를 포함할 수 있다. 데이터 버스들(112) 및 어드레스 버스들(124)은 중재 로직(116)을 BP(110), AP(112), 버스 마스터들(113), 공유 메모리(114) 및 포맷 변환기 캐시(118)에 결합시킬 수 있다. 일 예로서, 중재 로직(116)은, 다음의 구성요소들, 즉, BP(110), AP(112), 버스 마스터들(113) 및 포맷 변환기 캐시(118) 중 어느 것들 사이에서 데이터 버스들(122) 및 어드레스 버스들(124)를 통해서 신호들을 라우트(route)할 수 있다. 후술하는 바와 같이, 포맷 변환기 캐시(118)는 임의의 수의 공유 메모리들(114)로부터의 데이터를 저장할 수 있으며, 포맷 변환 기(120)는 데이터가 BP(110)에 의해서 처리되도록 상기 데이터를 제1 포맷으로부터 제2 포맷으로 변환할 수 있다.
하나의 특정 예에서, 시스템(100)은 바이패스 섹션(126)을 포함할 수 있는데, 이는 BP(110)를 중재 로직(116)에 결합시킬 수 있다. 이러한 바이패스 섹션(126)은 명령 또는 데이터 캐시들과 같은, 하나 이상의 캐시들(128)을 포함할 수 있다. 일 예로서, 이러한 캐시들(128)은 데이터가 BP(110) 고유의 포맷일 때 공유 메모리(114)로부터 데이터를 인출(fetch)하는데 사용될 수 있다. 시스템(100)은 바이패스 라인(130) 및 데이터 엑세스 유형 라인들(132)을 더 포함할 수 있다. BP(110)는 바이패스 라인(130)을 통해서 포맷 변환기(120)를 인에이블하거나 디스에이블할 수 있으며 데이터 엑세스 유형 라인들(132) 상에서 데이터 엑세스 유형들을 식별할 수 있다. 두 개의 데이터 엑세스 유형 라인들(132)이 도시되었지만, 시스템(100)은, 실질적으로 임의의 유형의 엑세스 유형을 식별하기 위해서 임의의 적절한 수의 이러한 라인들(132)을 포함할 수 있다. 데이터 버스(122) 및 어드레스 버스(124)는 또한 어드레스 선택 유닛(134)을 통해서 BP 프로세서(110)를 포맷 변환기(120)에 결합시킬 수 있다. BP(110)은 어드레스 선택 유닛(134)을 통해서 고유 메모리(114)내의 어드레스들로부터 데이터를 요청할 수 있다.
도 3을 참조하면, 데이터를 교환하기 위한 방법(300)이 예시된다. 본 방법(300)을 설명하기 위해서, 본 방법(300)이 임의의 다른 적합한 장치들 또는 시스템들을 이용하여 실시될 수 있다 할지라도, 도 2를 참조할 수 있다. 즉, 본 발명의 장치들에 따른 데이터 교환 시스템은 도 2에 도시된 것에 제한되지는 않는다. 더욱이, 본 방법(300)은 도 3에 도시된 특정 단계들 또는 이들이 설명되는 순서에 제한되지는 않는다. 본 발명의 방법(300)은 또한 도3에 도시되는 것과 비교해서 더 적거나 더 많은 수의 단계를 포함할 수 있다.
단계(310)에서, 본 방법(300)이 시작될 수 있다. 단계(311)에서, 포맷 변환기의 데이터 경계 크기가 설정될 수 있다. 단계(312)에서, 적어도 하나의 공유 메모리를 갖는 멀티-코어 구조에서, 제1 포맷의 데이터는, 데이터가 상이한 프로세서들 사이에서 공유되는 공유 메모리 내의 사전 결정된 범위의 어드레스들로부터 요청될 수 있다. 단계(314)에서, 포맷 변환기 캐시는 데이터를 저장하는데 전용이 될 수 있으며, 다른 명령 및 데이터 캐시들은 공유 메모리로부터 격리될 수 있다. 그 다음, 요청된 데이터는 포맷 변환기 캐시에 저장될 수 있는데, 여기서 단계(316)에 도시된 바와 같이, 포맷 변환기에 의해서 검색될 수 있다. 단계(318)에서, 포맷 변환기는 데이터가 공유 메모리 내에서 사전 결정된 범위의 어드레스들로부터 요청될 때 자동으로 인에이블될 수 있다.
예를 들어, 도 2를 참조하면, 시스템(100)은 적어도 하나의 공유 메모리를 갖는 멀티-코어 구조가 될 수 있는데, 이는, 시스템(100)이, 프로세서들이 데이터를 적어도 하나의 공통 메모리로부터 판독 및/또는 적어도 하나의 공통 메모리에 기록하는 단일 플랫폼에서 적어도 두 개의 프로세서들을 포함할 수 있음을 의미한다. 예를 들어, BP(110) 및 AP(112)는 데이터를 공유 메모리(114)로부터 판독 및/또는 공유 메모리(114)에 기록할 수 있다. 그 결과, BP(110) 및 AP(112)는 공유 메모리(114)로부터의 데이터를 공유할 수 있다.
포맷 변환기(120)의 데이터 경계 크기가 설정될 수 있으며, 하나의 장치에서, 포맷 변환기(120)의 데이터 경계 크기는 특정 버스 크기에 따라서 구성될 수 있다. 예를 들어, 어드레스 선택 유닛(134) 및 BP(110)로부터의 데이터 버스(122)의 크기는 32 비트가 될 수 있으며, 포맷 변환기에 대한 데이터 경계의 최대 크기는 256 비트가 될 수 있다. 포맷 변환기(120)가 이 특정 데이터 버스(122)로부터 데이터를 수신하거나 특정 데이터 버스(122)로 데이터를 전달하고자 하면, 포맷 변환기(120)의 데이터 경계 크기는 32 비트로 설정될 수 있다. 물론, 포맷 변환기(120)는 여러 크기의 다른 데이터 및 프로그램 버스에 결합될 수 있으며, 그 데이터 경계 크기는 데이터를 수신하고 있거나 또는 데이터를 전송하는 버스에 따라서 설정될 수 있다.
본 발명이 동작하는 하나의 방법을 기술하기 위하여, BP(110)가 BE-32와 같은 워드 불변 메모리 모델에 따르며 AP(112)가 LE에 따라서 데이터를 구성하는 공유 메모리로부터 데이터를 요청하는 일 예가 주어질 것이다. 물론, 본 발명은 임의의 다른 적절한 포맷의 데이터를 공유하는 복수의 프로세서들을 갖는 임의의 시스템에 적용가능하다.
본 예를 계속하여 설명하면, BP(110)는 소정의 어드레스들로부터 데이터를 요청할 수 있으며, 이에 응답하여, 어드레스 선택 유닛(134)은 요청된 데이터가 공유 메모리(114) 내의 사전 결정된 범위의 어드레스들에 저장되는지 여부를 판단할 수 있다. 즉, 어드레스 선택 유닛(134)은 공유 메모리(114) 내의 어드레스 범위로 프로그램될 수 있으며, 여기서 이러한 어드레스들은 BP(110) 및 AP(112)에 의해서 공유될 수 있는 데이터를 포함한다. 요청된 데이터가 사전 결정된 범위의 어드레스 내에 있으면, 어드레스 선택 유닛(134)은, 요청된 데이터를 갖는 하나 이상의 데이터 라인들을 공유 메모리(114)로부터 인출하고 데이터 라인들을 저장하기 위해서 포맷 변환기 캐시(118)에 신호를 전달할 수 있다. 이러한 방식으로, 포맷 변환기 캐시(118)는 요청된 데이터를 저장하는데 전용이 되었다. 후술되듯이, 포맷 변환기(120)는 포맷 변환기 캐시(118)로부터 요청된 데이터를 검색할 수 있다.
부가적으로, 어드레스 선택 유닛(134)은 공유 메모리(114)로부터 명령 및 데이터 캐시들(128)을 격리시킴으로써 바이패스 섹션(126)을 디스에이블 할 수 있다. 어드레스 선택 유닛(134)은 또한 요청된 데이터가 공유 메모리(114)내의 사전 결정된 범위의 어드레스들내에 있을 때 포맷 변환기(120)를 자동으로 인에이블 할 수 있다. 이 단계에서는, 후술되듯이, 포맷 변환기(120)가 요청된 데이터를 제1 포맷으로부터 제2 포맷으로 변환하는 것을 예상할 수 있다.
본 방법(300)을 다시 참조하면, 단계(320)에서, 요청된 데이터에 대한 데이터 유형은 포멧 변환기로 식별될 수 있다. 단계(322)에서, 포맷 변환기를 사용하여 사전 결정된 규칙들에 기반한 데이터가 데이터를 처리하는 프로세서 고유의 제2 포맷으로 변환될 수 있다.
예를 들어, 도 2를 다시 한번 참조하면, BP(110)는 요청되는 데이터에 대한 데이터 유형을 데이터 엑세스 유형 라인들(132)를 통해 포맷 변환기(120)로 신호할 수 있다. 하나의 장치에서, 임의의 다른 적절한 데이터 유형이 본 발명의 장치들의 연구범위 내에 있다 할지라도, 데이터 유형은 바이트, 워드 또는 더블-워드가 될 수 있다. 데이터 유형은, 후술되듯이, 포맷 변환기(120)에 대한 변환 규칙들을 설정하는데 사용될 수 있다.
일단 데이터 유형을 수신하면, 포맷 변환기(120)는 포맷 변환기 캐시(118)로부터 적절한 데이터를 검색할 수 있다. 도 4를 참조하면, (열거된 여러 어드레스들을 갖는) 공유 메모리(114) 및 포맷 변환기(120)에 대한 보다 상세한 고찰이 예시된다. 다음 예들에서, 확실히 다른 프로세서 동작들이 본 발명의 범위내에 있다 할지라도, BP 프로세서(110)는 4 바이트 판독을 수행하는 것으로 가정된다.
포맷 변환기(120)는 포맷 변환기 캐시(118)로부터 제1 레지스터(140)로 데이터를 전달할 수 있다. 제1 레지스터(140)는 데이터가 종래의 워드-불변 메모리 모델에 따라서 나타나는 방법, 즉, 변환이 발생하지 않는 것을 도시한다. 제1 레지스터(140) 아래의 번호들은 어드레스 값들을 표시한다. 하나의 장치에서, 포맷 변환기(120)는 일련의 이행 규칙들(146)로 프로그램될 수 있다. 이러한 이행 규칙들(146)은 데이터가 제2 포맷으로 변환되는 방법에 대하여 포맷 변환기(120)에 명령할 수 있다.
예를 들어, 제1 포맷은 LE가 될 수 있으며, 제2 포맷은 BE-32와 같은 변환된 워드 불변 모델이 될 수 있다. 또한, 데이터 유형은 바이트가 될 수 있다. 공지된 바와 같이, BE-32는 데이터 엑세스 유형에 따라서, 때때로 고유 메모리로부터 엑세스되는 데이터의 마지막 두 어드레스 비트들을 변경할 수 있다. 특히, 바이트 엑세스에 대해서, 마지막 두 어드레스 비트들은 인버트될 수 있다. 따라서, 이러한 유형의 데이터 엑세스에 대해서 변환이 발생하지 않으면, LE 포맷으로 저장될 수 있는, 공유 메모리 114에 도시된 데이터는 제 1레지스터(140)에 도시된 순서에 따라서 저장될 수 있다. 예를 들면, 어드레스 0에서 LE 포맷으로 공유 메모리(114)에 저장된 데이터는 어드레스 3의 제1 레지스터(140)에 저장될 것이다. 그러한 프로세스는 데이터 공유를 복잡하게 할 수 있다.
본 발명의 장치들의 일 실시예에 따르면, 제1 포맷의 데이터는 제2 포맷으로 변환될 수 있으며, 이는 데이터를 처리하는 프로세서에 내재될 수 있다. 예를 들어, 여전히 도 4를 참조하면, 포맷 변환기(120)는 제1 포맷으로 부터 제2 포맷으로 일련의 변환 규칙들(146)에 따라서 데이터를 변환할 수 있다. 다시, 제2 레지스터(144) 아래의 번호들은 어드레스에 대한 값들을 표시한다. 도시된 바와 같이, 제 1 레지스터(140) 내의 어드레스들 0 및 1에 저장된 데이터는 제2 레지스터(144) 내의 어드레스들 3 및 2에 각각 저장될 수 있다. 유사하게, 제1 레지스터(140) 내의 어드레스들 2 및 3에 저장된 데이터는 제2 레지스터(144) 내의 어드레스들 1 및 0에 저장될 수 있다.
일단 제2 레지스터(144)로 전달되면, BP(110)는 데이터를 엑세스하여 후속되는 동작들을 수행할 수 있다. 데이터의 변환을 통해서, 데이터는 BP(110) 고유의 포맷이 될 수 있으며, 이는 데이터 공유의 효율을 향상시킨다.
포맷 변환기(120)로 프로그램될 수 있는 변환 규칙들(146)은 제1 포맷으로부터 데이터를 요청하는 프로세서 고유의 임의의 포맷으로 데이터를 변환할 수 있는 임의의 적절한 프로그램이 될 수 있다. 예로서 그리고 이 예에 제한되는 것은 아닌 것으로서, 제1 포맷은 LE, BE-32 및 진정한 BE 메모리 모델들로부터 선택될 수 있으며, 제2 포맷은 변환된 LE, 변환된 BE-32, 및 변환된 진정한 BE 메모리 모델들로부터 선택될 수 있다. 발생되는 변환은 또한 전술된 바와 같이 데이터 엑세스 유형에 의존할 수 있다.
예를 들어, 전술된 이전의 예를 고려하면, 데이터 엑세스 유형은 워드가 될 수 있다. 도 5를 참조하면, 데이터 공유를 복잡하게 하는, 변환되지 않은 데이터가 제1 레지스터(140)에 도시된다. 여기서, 공지된 바와 같이, 워드-불변 포맷은 데이터 엑세스 유형이 워드일 때 거의 마지막 어드레스 비트를 인버트한다. 그러나, 포맷 변환기(120)는 제1 레지스터(140) 내의 데이터를 제2 레지스터(144)에 도시된 순서로 변환할 수 있다. 이러한 포맷은 BP(110)의 고유 포맷일 수 있다.
전술된 예들이, LE로 부터 BE-32로 데이터를 변환하는 프로세스를 기술하지만, 포맷 변환기(120)가 실질적으로 임의의 포맷 사이에서 데이터를 변환할 수 있음을 알 수 있다. 또 다른 예로서 그리고 도 6을 참조하면, 제1 포맷은 LE 스킴에 기반을 둘 수 있으며, 제2 포맷은 진정한 BE 메모리 모델에 기반을 둘 수 있다. 이 예에서, 데이터 엑세스 유형은 더블-워드 또는 32 비트가 될 수 있다. 다시, 제1 레지스터(140)는 변환 동작이 수행되지 않으면 데이터의 순서를 도시하지만, 이는 최적은 아니다. 실질적으로 임의의 유형의 변환을 처리할 수 있기 때문에, 포맷 변환기(120)는 데이터를 진정한 BE 스킴을 채용하는 프로세서에 적합한 제2 포맷으로 변환할 수 있다. 그 결과들은 제2 레지스터(144)에서 도시된다. 알 수 있듯이, 포맷 변환기(120)는 데이터를 하나의 포맷에서 다른 포맷으로 변환하도록 할 수 있는 변환 규칙들로 프로그램될 수 있다.
도3의 방법(300)을 다시 참조하면, 단계(324)에서, 데이터는 제2 포맷으로 부터 제1 포맷으로 재변환될 수 있다. 또한, 포맷 변환기는, 단계(326)에 도시된 바와같이, 제1 포맷으로 부터 제2 포맷으로 데이터를 변환하는 것이 불필요하면 바이패스될 수 있다. 마지막으로, 단계(328)에서, 방법(300)이 종료될 수 있다.
예를 들어, 도2-6을 참조하면, BP(110)는 데이터를 다시 공유 메모리(114)에 기록할 필요가 있을 수 있다. 최적의 성능을 위해서, 공유 메모리(114)가 구성되는 메모리 모델에 따라서 공유 데이터가 공유 메모리(114)에 다시 기록되도록 하는 것이 바람직하다. 보다 특정한 예로서, BP(110)는 BP(110)에 내재되는 데이터를 기록할 필요가 있을 수 있지만 공유 메모리(114)에 의해서 채용되는 메모리 모델과 충돌된다. 이에 응답하여, 어드레스 선택 유닛(134)은 포맷 변환기(120)에 신호를 전달할 수 있으며, 포맷 변환기(120)는 이어서 공유 메모리(114)의 메모리 모델에 순응하는 순서로 다시 데이터를 재변환할 수 있다.
이러한 프로세스의 일 예가 도 7에 도시되는데, 여기서 제2 레지스터(144)는 BP(110)로부터 수신된 것으로서 변환된 데이터를 도시하며 제1 레지스터(140)는 재변환된 후의 데이터를 표시한다. 이러한 특정한 재변환은 하나의 바이트 기록 회신(write-back) 동작에 기반을 둘 수 있다. 재변환은 LE에 순응하는 순서로 데이터를 배치할 수 있으며, LE는 공유 메모리(114)에 대한 메모리 모델이 될 수 있다. 그러나, 재변환되는 데이터가 공유 메모리(114)로부터 초기에 인출된 데이터로 제한될 필요가 없음을 주목하는 것은 중요하다. 즉, 재변환의 프로세스는, 공유 메모리(114)에 저장되도록 변환되어야 하는 임의의 적절한 유형의 데이터에 적용될 수 있다.
데이터를 변환하지 않는 것이 바람직한 상황이 있을 수 있다. 그러한 상황에서, 포맷 변환기(120)는 바이패스될 수 있다. 예를 들어, BP(110)는 공유 메모리(114) 내의 사전 결정된 범위의 어드레스들 내에 있지 않은 데이터를 요청할 수 있는데, 이는 변환이 필요하지 않을 수 있음을 의미한다. 이에 응답하여, 어드레스 선택 유닛(134)은 포맷 변환기(120)를 디스에이블 할 수 있으며 바이패스 섹션(126)을 인에이블 할 수 있다. 바이패스 섹션(126)이 인에이블되면, 임의의 캐시들(128)이 공유 메모리(114) 또는 어떤 다른 메모리로부터 데이터를 검색하는데 사용될 수 있다. 바이패스 라인(130)을 통해서, BP(110)는 변환이 요구되지 않으면 포맷 변환기(120)를 디스에이블 할 수 있다. 그러나, BP 프로세서(110)는 여전히 종래 방식으로 데이터를 저장하기 위해 포맷 변환기 캐시(118)를 이용할 수 있다. 이러한 절차는, 요청된 데이터가 BP(110) 고유의 포맷이면 유용할 수 있다. 물론, 본 발명은 이들 예로 제한되지 않으며, 다른 상황들이 포맷 변환기(120)의 바이패싱을 보장할 수 있다.
앞서 언급한 바와 같이, 포맷 변환기(120)가 LE로부터 BE-32 및 진정한 BE로 변환된 예들이 제시되었지만, 본 발명은 다른 적절한 포맷들 사이에서 데이터를 변환하는데 사용될 수 있다. 더욱이, 본 발명은 32 비트 머시인들로 제한되지 않으며, 다른 임의의 적절한 비트 크기가 본 발명의 장치들의 고려 대상이다. 추가적으로, 멀티-코어 구조의 프로세서들은 동일한 비트 크기들을 갖는 것에 제한되지 않으며, 임의의 수의 포맷 변환기들(120) 및 포맷 변환기 캐시들(118)이 멀티-코어 구조로 제시될 수 있다.
도 8을 참조하면, 데이터를 교환하는 또 다른 방법(800)이 도시된다. 전술된 바와같이, 시스템(100)은 임의의 적절한 수의 공유 메모리들을 포함할 수 있다. 본 방법(800)은 이러한 가능한 구성의 관점에서 취해질 수 있는 여러 단계들을 도시한다. 예를 들어, 단계(810)에서, 방법(800)이 시작될 수 있으며, 단계(812)에서 사전 결정된 규칙들이 멀티-코어 구조에서 각각의 공유 메모리에 대해서 포맷 변환기로 프로그램될 수 있다. 또한, 단계(814)에서, 사전 결정된 규칙들은 포맷 변환기가 엑세스하는 공유 메모리의 유형에 따라서 선택될 수 있다.
예를 들어, 도2를 참조하면, 시스템(100)은 임의의 적절한 수의 공유 메모리들(114)을 포함할 수 있다. 이러한 공유 메모리들(114)은 LE, BE, BE-32 또는 어떤 다른 메모리 구성을 포함하는, 다양한 메모리 모델들에 대해서 동작할 수 있다. 그와 같이, 포맷 변환기(120)는 포맷 변환기(120)가 여러 포맷의 공유 메모리들(114)과 데이터를 요청하는 프로세서, 예를 들어, BP(110) 사이에서 변환하도록 하는 변환 규칙들(146)로 프로그램될 수 있다. 포맷 변환기(120)는, 원하는 경우, 이러한 다중 변환들을 동시에 수행할 수도 있다. 포맷 변환기(120)가 선택하는 변환 규칙들(146)은 엑세스되는 공유 메모리(114)의 유형에 기반을 둘 수 있다. 특히, 이러한 프로세스는 엑세스된 공유 메모리(114)에 의해서 채용되는 메모리 구조를 참조할 수 있다.
또한, 이러한 다중 변환은 여러 상이한 공유 메모리(114)에 데이터를 기록하는 프로세서에 적용될 수 있음을 알 수 있다. 또한 시스템(100)이 임의의 적절한 수의 포맷 변환기들(120) 및 포맷 변환기 캐시들(118)을 포함할 수 있으며, 이들 각각은 임의의 적절한 수의 공유 메모리들로부터 적절한 데이터 변환을 보장하기 위해 일렬로 동작할 수 있다. 즉, 시스템(100)은 단순히 단일 포맷 변환기(120) 또는 포맷 캐시(118)로 제한되지 않는다. 도8을 다시 참조하면, 방법(800)은 단계(816)에서 종료될 수 있다.
데이터 변환을 포함하는 본 발명은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 실현될 수 있다. 본 명세서에 기술된 방법들을 수행하기 위해 적응되는 임의의 종류의 컴퓨터 시스템 또는 다른 장치가 적합하다. 하드웨어 및 소프트웨어의 전형적인 조합은, 본 명세서에 기술된 방법들을 수행하도록 로딩 및 실행될 때 이동 통신 장치를 제어할 수 있는 컴퓨터 프로그램을 갖는 이동 통신 장치가 될 수 있다. 본 발명은 또한 컴퓨터 프로그램 제품에 내장될 수 있으며, 이는 본 명세서에 기술된 방법들의 실행을 인에이블하는 모든 특징들을 포함하며 컴퓨터 시스템에 로딩될 때 이러한 방법들을 수행할 수 있다.
본 발명의 바람직한 실시예들이 예시 및 기술되었지만, 본 발명은 그처럼 제한되지 않음을 명백히 알 수 있다. 첨부된 청구범위에 의해서 정의된 바와같이 본 발명의 사상 및 범위로부터 벗어나지 않는 한 당업자라면 여러 수정, 변경, 변형, 치환 및 균등물이 가능할 것이다.

Claims (11)

  1. 데이터 교환 방법에 있어서,
    적어도 하나의 공유 메모리를 갖는 멀티-코어 구조에서, 상기 공유 메모리내의 사전 결정된 범위의 어드레스들로부터 제1 포맷의 데이터를 요청하는 단계 - 상기 데이터는 상이한 프로세서들 사이에서 공유됨 - ;
    포맷 변환기에 의해서 검색되도록 캐시에 상기 요청된 데이터를 저장하는 단계;
    상기 데이터에 대한 데이터 유형을 상기 포맷 변환기로 식별하는 단계; 및
    상기 포맷 변환기로, 상기 캐시로부터 상기 데이터를 검색하여, 사전 결정된 규칙들에 따라서 상기 데이터를 처리할 프로세서 고유의 제2 포맷으로 상기 데이터를 변환하는 단계
    를 포함하는 것을 특징으로 하는 데이터 교환 방법.
  2. 제1항에 있어서,
    상기 데이터가 상기 공유 메모리내의 사전 결정된 범위의 어드레스들로부터 요청될 때 상기 포맷 변환기를 자동으로 인에이블하는 단계를 더 포함하는 것을 특징으로 하는 데이터 교환 방법.
  3. 제2항에 있어서,
    상기 포맷 변환기가 인에이블될 때, 상기 데이터를 저장하는데 상기 캐시를 전용화시키는 단계, 및
    다른 명령 및 데이터 캐시들을 상기 공유 메모리로부터 격리시키는 단계를 더 포함하는 것을 특징으로 하는 데이터 교환 방법.
  4. 제1항에 있어서,
    버스 크기에 따라서 상기 포맷 변환기에 데이터 경계 크기를 설정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 교환 방법.
  5. 제1항에 있어서,
    상기 데이터를 상기 제1 포맷으로부터 상기 제2 포맷으로 변환하는 것이 불필요할 때 상기 포맷 변환기를 바이패스하는 단계를 더 포함하는 것을 특징으로 하는 데이터 교환 방법.
  6. 제1항에 있어서,
    상기 제1 포맷은 리틀 엔디안 메모리 모델(little endian memory model), 빅 엔디안 메모리 모델 (big endian memory model) 및 에뮬레이트된 빅 엔디안 메모리 모델 중 적어도 하나에 기반을 두며, 상기 제2 포맷은 변환된 리틀 엔디안 메모리 모델, 변환된 빅 엔디안 메모리 모델 및 변환된 에뮬레이트된 빅 엔디안 메모리 모델 중 적어도 하나에 기반을 둔 것을 특징으로 하는 데이터 교환 방법.
  7. 제1항에 있어서,
    상기 멀티-코어 구조는 복수의 공유 메모리를 갖되, 상기 방법은,
    각각의 공유 메모리에 대한 사전 결정된 규칙들을 상기 포맷 변환기로 프로그램하는 단계; 및
    상기 포맷 변환기가 엑세스하는 상기 공유 메모리 유형에 따라서 상기 사전 결정된 규칙들을 선택하는 단계를 더 포함하는 것을 특징으로 하는 데이터 교환 방법.
  8. 데이터 교환 시스템에 있어서,
    제1 프로세서;
    제2 프로세서;
    상기 제1 프로세서 및 상기 제2 프로세서에 결합된 적어도 하나의 메모리로서, 상기 제1 프로세서 및 제2 프로세서는 상기 메모리 내의 데이터 중 적어도 일부를 공유하는 메모리;
    상기 메모리에 결합된 포맷 변환기; 및
    상기 포맷 변환기에 결합된 포맷 변환기 캐시 - 상기 제1 프로세서는 상기 메모리내에서 사전 결정된 범위의 공유 어드레스들로부터 상기 데이터를 요청하며, 상기 포맷 변환기 캐시는 상기 요청된 데이터를 인출 및 저장하며 상기 포맷 변환기는 상기 포맷 변환기 캐시로부터 상기 데이터를 검색하고 상기 사전 결정된 규칙 들에 따라서 상기 데이터를 제1 포맷으로부터 상기 제1 프로세서 고유의 제2 포맷으로 변환함 -
    을 포함하는 것을 특징으로 하는 데이터 교환 시스템.
  9. 제8항에 있어서,
    상기 제1 프로세서에 결합된 어드레스 선택 유닛을 더 포함하되, 상기 어드레스 선택 유닛은 상기 제1 프로세서가 상기 공유 메모리 내에서 사전 결정된 범위의 어드레스들로부터 상기 데이터를 요청할 때 상기 포맷 변환기를 자동으로 인에이블하는 것을 특징으로 하는 데이터 교환 시스템.
  10. 제9항에 있어서,
    명령 캐시 및 데이터 캐시 중 적어도 하나를 더 포함하되, 상기 어드레스 선택 유닛이 상기 포맷 변환기를 인에이블 할 때, 상기 어드레스 선택 유닛은 상기 포맷 변환기 캐시를 데이터를 저장하는데 전용으로 하며 상기 명령 캐시 및 데이터 캐시를 격리시키는 것을 특징으로 하는 데이터 교환 시스템.
  11. 제8항에 있어서,
    상기 제1 프로세서 및 어드레스 선택 유닛 중 적어도 하나는, 상기 데이터를 상기 제1 포맷으로부터 상기 제2 포맷으로 변환하는 것이 불필요할 때 상기 데이터가 상기 포맷 변환기를 바이패스하도록 하는 것을 특징으로 하는 데이터 교환 시스 템.
KR1020077011056A 2004-11-16 2005-11-07 데이터 교환 방법 및 시스템 KR20070070213A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/990,133 US20060106988A1 (en) 2004-11-16 2004-11-16 Method and system for exchanging data
US10/990,133 2004-11-16

Publications (1)

Publication Number Publication Date
KR20070070213A true KR20070070213A (ko) 2007-07-03

Family

ID=36387782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077011056A KR20070070213A (ko) 2004-11-16 2005-11-07 데이터 교환 방법 및 시스템

Country Status (5)

Country Link
US (1) US20060106988A1 (ko)
EP (1) EP1815342A2 (ko)
KR (1) KR20070070213A (ko)
MX (1) MX2007005861A (ko)
WO (1) WO2006055291A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011843B1 (ko) * 2018-04-19 2019-08-19 전운배 데이터 조합형식 변환방법, 장치 및 프로그램

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016895A1 (en) * 2005-07-15 2007-01-18 Microsoft Corporation Selective omission of endian translation to enhance emulator performance
JP4346587B2 (ja) * 2005-07-27 2009-10-21 富士通株式会社 システムシミュレーション方法
US20070150627A1 (en) * 2005-11-22 2007-06-28 Lsi Logic Corporation Endian mapping engine, method of endian mapping and a processing system employing the engine and the method
US7346762B2 (en) * 2006-01-06 2008-03-18 Apple Inc. Replacing instruction and corresponding instructions in a queue according to rules when shared data buffer is accessed
KR100827704B1 (ko) * 2006-11-29 2008-05-07 삼성전자주식회사 포트별 데이터 입출력 단위가 독립적인 경우에도 데이터 호환을 보장하는 멀티패쓰 억세스블 반도체 메모리 장치 및 그에 따른 데이터 호환방법
DE102006061050A1 (de) * 2006-12-22 2008-06-26 Infineon Technologies Ag Datenverarbeitungsvorrichtung mit Multi-Endian-Unterstützung
JP5097973B2 (ja) * 2007-09-06 2012-12-12 株式会社メガチップス データ処理装置
US20100312934A1 (en) * 2009-06-05 2010-12-09 Taiwan Semiconductor Manufacturing Company, Ltd. System and Method for Multi-Protocol Bus Communications
US9497283B2 (en) * 2013-12-13 2016-11-15 Oracle International Corporation System and method for providing data interoperability in a distributed data grid
KR102407917B1 (ko) 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
CN113220620B (zh) * 2021-05-21 2024-05-07 北京旋极信息技术股份有限公司 一种用于数据流格式转换的系统以及数据流传输系统
US20230251980A1 (en) * 2022-02-10 2023-08-10 Mellanox Technologies, Ltd. Devices, methods, and systems for disaggregated memory resources in a computing environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5970236A (en) * 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US6412043B1 (en) * 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6598128B1 (en) * 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6687262B1 (en) * 2000-02-21 2004-02-03 Hewlett-Packard Development Company, L.P. Distributed MUX scheme for bi-endian rotator circuit
JP2001282704A (ja) * 2000-03-31 2001-10-12 Fujitsu Ltd データ処理装置及びデータ処理方法とデータ処理システム
EP1182558A1 (en) * 2000-08-21 2002-02-27 Texas Instruments Incorporated MME descriptor having big/little endian bit to control the transfer data between devices
US6675274B1 (en) * 2001-03-15 2004-01-06 Emc Corporation Method and apparatus for determining volume swaps
US20020172508A1 (en) * 2001-05-21 2002-11-21 Gabbi Zennou System and method for multichannel short range media transfer and storage
US6675279B2 (en) * 2001-10-16 2004-01-06 International Business Machines Corporation Behavioral memory enabled fetch prediction mechanism within a data processing system
US6675280B2 (en) * 2001-11-30 2004-01-06 Intel Corporation Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher
US6895489B2 (en) * 2002-08-07 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for operating in endian independent mode
JP4446373B2 (ja) * 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011843B1 (ko) * 2018-04-19 2019-08-19 전운배 데이터 조합형식 변환방법, 장치 및 프로그램

Also Published As

Publication number Publication date
WO2006055291A2 (en) 2006-05-26
MX2007005861A (es) 2007-07-04
EP1815342A2 (en) 2007-08-08
WO2006055291A3 (en) 2007-06-07
US20060106988A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
KR20070070213A (ko) 데이터 교환 방법 및 시스템
JP3765586B2 (ja) 多重プロセッサコンピューターシステムのアーキテクチャ
KR100225744B1 (ko) 동적연쇄화조작동안레이스상태를막는방법및장치
US20020144027A1 (en) Multi-use data access descriptor
US20040107265A1 (en) Shared memory data transfer apparatus
US20150261535A1 (en) Method and apparatus for low latency exchange of data between a processor and coprocessor
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
JPH10187533A (ja) キャッシュシステム、プロセッサ及びプロセッサを動作させる方法
JPH08263424A (ja) コンピュータ装置
US20070038797A1 (en) Methods and apparatus for invalidating multiple address cache entries
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
US6782463B2 (en) Shared memory array
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
JPH04230550A (ja) 情報処理ネツトワーク及び情報処理方法
EP0730228B1 (en) ECC protected memory organization with pipelined read-modify-write accesses
US8200900B2 (en) Method and apparatus for controlling cache memory
WO2006134804A1 (ja) 外部デバイスアクセス装置
JPS6153746B2 (ko)
US20120254552A1 (en) Memory access remapping
US20040111581A1 (en) Imprecise cache line protection mechanism during a memory clone operation
US11003611B2 (en) Information processing system, information processing method, and semiconductor device
US20040111569A1 (en) High speed memory cloning facility via a coherently done mechanism
US8099533B2 (en) Controller and a method for controlling the communication between a processor and external peripheral device
US6928524B2 (en) Data processing system with naked cache line write operations
US20030056072A1 (en) System and method for providing data to multi-function memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application