KR100917677B1 - 모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법 - Google Patents

모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100917677B1
KR100917677B1 KR1020070125674A KR20070125674A KR100917677B1 KR 100917677 B1 KR100917677 B1 KR 100917677B1 KR 1020070125674 A KR1020070125674 A KR 1020070125674A KR 20070125674 A KR20070125674 A KR 20070125674A KR 100917677 B1 KR100917677 B1 KR 100917677B1
Authority
KR
South Korea
Prior art keywords
bfs
file
command
file system
result
Prior art date
Application number
KR1020070125674A
Other languages
English (en)
Other versions
KR20080101636A (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 KR20080101636A publication Critical patent/KR20080101636A/ko
Application granted granted Critical
Publication of KR100917677B1 publication Critical patent/KR100917677B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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
    • 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

Abstract

모바일 폰은 애플리케이션 프로세서와 베이스밴드 프로세서를 포함할 수 있다. 상기 애플리케이션 프로세서는 제 1 파일 시스템을 가지며, 상기 베이스밴드 프로세서는 제 2 파일 시스템을 가진다. 상기 베이스 밴드 프로세서는 메모리 버스를 통해 상기 애플리케이션 프로세서의 호스트 인터페이스 유닛에 연결된다. 상기 베이스밴드 프로세서는 상기 호스트 인터페이스 유닛의 FIFO 큐들과 레지스터들을 설정할 수 있으며, 따라서 상기 애플리케이션 프로세서를 정보를 교환하는 목표를 달성하도록 제어한다. 본 발명은 상기 두 프로세서들에서 파일 시스템을 브릿징하기 위한 브릿징 파일 시스템을 제공한다. 따라서, 상기 애플리케이션 프로세서의 제 1 파일 시스템은 상기 베이스밴드 프로세서의 제 2 파일 시스템의 파일들에 접근할 수 있다.
모바일 통신장치, 애플리케이션 프로세서, 베이스밴드 프로세서, BFS, 클라이언트 모듈, 호스트 모듈, 인터페이스

Description

모바일 폰의 두 개의 상이한 프로세서들 간의 파일 시스템들을 브릿징하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR BRIDGING FILE SYSTEMS BETWEEN TWO DIFFERENT PROCESSORS IN MOBILE PHONE}
본 발명은 일반적으로 모바일 통신장치에 관한 것이다. 더욱 상세하게는, 본 발명은 모바일 통신장치의 두 개의 프로세서들의 파일 시스템들을 브릿징하기 위한 방법에 관한 것이다.
모바일 폰들의 기능이 더욱 복잡해짐에 따라, 단일 프로세서는 기능폰(feature phone)의 모든 요구사항들에 더 이상 부합할 수 없다. 따라서, 기능폰은 함께 동작하고 다른 기능들을 각각 수행하기 위해 두 개의 프로세서들을 포함할 수 있다. 전형적으로, 베이스밴드 프로세서(baseband processor)와 애플리케이션 프로세서(application processor)가 있다. 베이스밴드 프로세서는 통신 서비스들을 제공하고, 무선통신 프로토콜들을 관리하며, R/F 신호들을 수신/전송하기 위해 무선 주파수 모듈을 제어한다. 또한, 베이스밴드 프로세서는 주소록들, 폰 조작들, 단문 메시지들 등과 같은 맨 머신 인터페이스들(man machine interfaces:MMI)을 담당한다. 관련 애플리케이션들과 데이터를 저장하기 위해, 베이스밴드 프로세서는 자기 자신의 파일 시스템을 가진다. 애플리케이션 프로세서는, 촬영, 오디오/비디오 기록, 및 멀티미디어 파일들의 표시와 같은 멀티미디어 서비스들을 제공한다. 멀티미디어 데이터를 신속하게 접근(access)하기 위해, 애플리케이션 프로세서도 자기 자신의 파일 시스템을 가진다.
두 프로세서들이 각각 파일 시스템을 가지지만, 때로 그들은 다른 파일 시스템에 저장되어 있는 데이터에 접근할 필요가 있다. 예를 들어, 애플리케이션 프로세서에 의해 촬영되고 애플리케이션 프로세서의 파일 시스템에 저장되어 있는 사진은, 베이스밴드 프로세서에 의해 처리되어 멀티미디어 메시징 서비스들에 의해 전송될 수 있다. 또한, 베이스밴드 프로세서는 부호화된 영상을 셀룰러 네트워크로부터 다운로드하여 영상을 자신의 파일 시스템에 저장할 수 있다; 이어서, 애플리케이션 프로세서는 영상을 읽고, 디코딩하여, 모니터 상에 표시한다. 베이스밴드 프로세서가 애플리케이션 프로세서의 파일 시스템의 데이터를 필요로 한다는 것을 알 수 있다. 유사하게, 애플리케이션 프로세서는 베이스밴드 프로세서의 파일 시스템의 데이터를 필요로 한다.
일반적으로, 애플리케이션 프로세서는, 베이스밴드 프로세서가 애플리케이션 프로세서의 파일 시스템에 저장되어 있는 데이터에 직접적으로 접근하도록 하기 위해 애플리케이션 프로그래밍 인터페이스(application programming interface: API) 명령들을 제공한다. 그러나, 애플리케이션 프로세서는 베이스밴드 프로세서의 파일 시스템에 저장되어 있는 데이터에 직접적으로 접근할 수 없다.
특허 US 6,987,961는, 공유된 메모리를 가지는 두 프로세서들 간의 네트워크 를 시뮬레이팅하기 위한 방법을 공개한다. TCP/IP 프로토콜들을 따르는 네트워크 파일 시스템을 통해, 두 프로세서들은 서로 데이터를 공유할 수 있다. 그러나, 네트워크 프로토콜들은 복잡하며, 프로세서들과 메모리들의 부하를 증가시킨다. 따라서, 이 방법은 제한된 자원들만을 가지는 모바일 폰들에는 적합하지 않다. 이 외에, 특허 US 6,161,104는, 클라이언트 애플리케이션이 서버 애플리케이션에서의 데이터에 접근할 수 있도록 하기 위한 방법을 공개한다. 그러나, 이 방법은 물리적인 네트워크(예를 들어, 인터넷)에서 수행되어야 하며, 따라서 모바일 폰들에는 적합하지 않다.
이 문제점을 해결하기 위해, 본 발명은 모바일 폰에서의 두 프로세서들의 파일 시스템들을 브릿징하기 위한 방법 및 시스템을 제공한다. 간단히, 본 발명에 따른 시스템은, 브릿징 파일 시스템(bridging file system:BFS)이라 불리어진다. 이 시스템과 함께, 애플리케이션 프로세서는 베이스밴드 프로세서의 파일 시스템에 저장되어 있는 데이터에 직접적으로 접근할 수 있다.
간단히, 본 발명에 따른 시스템은 브릿징 파일 시스템(BFS)이라 불리어진다. 상기 BFS와 함께, 애플리케이션의 제 1 파일 시스템은 베이스밴드 프로세서의 제 2 파일 시스템에 저장되어 있는 데이터에 직접적으로 접근(access)할 수 있다. 물리적으로, 상기 베이스밴드 프로세서는, 메모리 버스를 통해 상기 애플리케이션 프로세서의 호스트 인터페이스 유닛(host interface unit:HIU)에 연결되어 있다. 본 발명에 따르면, 상기 베이스밴드 프로세서는, 레지스터들과 선입선출(first-in-first-out:FIFO) 큐들(queues)을 설정함으로써, 상기 애플리케이션 프로세서를 제어하고 통신할 수 있다.
본 발명에 따르면, 두 개의 소프트웨어 모듈들이 부가된다. 하나는 상기 애플리케이션 프로세서에서 실행되는 BFS 클라이언트이고, 다른 하나는 상기 베이스밴드 프로세서에서 실행되는 BFS 호스트이다. 상기 애플리케이션 프로세서의 제 1 파일 시스템이 상기 베이스밴드 프로세서의 제 2 파일 시스템에 저장되어 있는 파 일에 접근을 요청하는 경우, 상기 제 1 파일 시스템은 상기 BFS 클라이언트에 요청하는 명령을 송신한다. 그 후, 상기 HIU를 통해, 상기 BFS 클라이언트는 열기/읽기/쓰기/닫기/찾기 BFS 명령을 상기 BFS 호스트에 송신한다. 상기 베이스밴드 프로세서에서, 상기 BFS 호스트는 상기 HIU를 통해 상기 BFS 클라이언트로부터 BFS 명령들을 수신하고, 상기 제 2 파일 시스템에 상기 BFS 명령들을 실행할 것을 요청하고, 실행된 결과를 상기 HIU를 통해 상기 BFS 클라이언트에 다시 전송한다.
선행기술과 비교하면, 본 발명은 단지 두 개의 소프트웨어 모듈들을 부가한다: BFS 클라이언트와 BFS 호스트. 두 프로세서들의 오리지날 프로그램들과 디자인들은 변경될 필요가 없다. 또한, BFS 클라이언트와 BFS 호스트는 적은 동작들 및 메모리들만을 필요로 한다. 고속 접근이 메모리 버스를 통해 HIU를 설정함으로써 달성될 수 있다. 또한, 상기 BFS 클라이언트와 상기 BFS 호스트에 의해 열린 데이터는, BFS 읽기/쓰기 동작들의 효율성을 높이기 위해 메모리에 전부 또는 부분적으로 버퍼링될 수 있다.
본 발명은 모바일 폰에 따르면, 두 프로세서들의 파일 시스템들을 원활하게 브릿징할 수 있게 된다. 또한, 애플리케이션 프로세서는 베이스밴드 프로세서의 파일 시스템에 저장되어 있는 데이터에 직접적으로 접근할 수 있다.
본 발명의 이점과 사상은 첨부된 도면들과 함께 다음의 상세한 설명에 의해 이해될 것이다.
도 1은, 본 발명에 따른 모바일 폰의 기본 블럭도를 나타낸다. 이 모바일 폰은 주로 두 개의 하위 시스템들, 즉 멀티미디어 하위 시스템(multimedia sub-system) 및 통신 하위 시스템(communication sub-system)을 포함한다. 상기 멀티미디어 하위 시스템은 주로 애플리케이션 프로세서(110), 카메라 모듈(113), 디스플레이 시스템(114), 제 1 저장장치(112), 및 다른 주변장치들, 을 포함한다. 상기 애플리케이션 프로세서(110)는, 멀티미디어 서비스들, 예를 들면, 사진촬영/비디오 기록을 위해 카메라 모듈(113)을 제어하고, 영상들을 표시하기 위해 디스플레이 시스템(114)을 제어하며, 저장장치(112)의 데이터에 접근(access)하는 것을 담당한다. 상기 통신 하위 시스템은 주로 베이스밴드 프로세서(120), RF 모듈(123), 제 2 저장장치(122), 메모리(121), 및 다른 주변장치들, 을 포함한다. 상기 베이스밴드 프로세서(120)는 통신 서비스들 및 맨 머신 인터페이스(MMI)들을 담당한다. 상기 베이스밴드 프로세서(120)는 상기 제 2 저장장치(122)와 상기 메모리(121)에 저장되어 있는 데이터에 주로 접근한다. 상기 베이스밴드 프로세서(120)가 메모리 버스(130)를 통해 상기 애플리케이션 프로세서(110)의 HIU(115)에 연결된다는 것을 주지해야 한다. 상기 HIU(115)는, 레지스터들 및 FIFO 큐들을 포함한다. 상기 베이스밴드 프로세서(120)는, 상기 레지스터들 및 FIFO 큐들을 설정함으로써 상기 애플리케이션 프로세서(110)를 제어할 수 있고 상기 애플리케이션 프로세서(110)와 통신할 수 있다. 본 발명에 따른 BFS는, 적어도, 상기 애플리케이션 프로세서(110), 상기 베이스밴드 프로세서(120), 상기 제 2 저장장치(122), 상기 메모리(121), 및 상기 메모리 버스(130), 를 포함한다.
도 2는, 본 발명에 따른 애플리케이션 프로세서(110)와 베이스밴드 프로세서(120)의 소프트웨어 모듈들을 도시한다. 상기 애플리케이션 프로세서(120)의 소프트웨어 모듈들은, 주로, 제 1 애플리케이션 프로그램(210), HIU 클라이언트 드라이버(213), BFS 클라이언트(215), 제 1 파일 시스템(211), 및 제 1 저장 드라이버(212), 를 포함한다. 상기 베이스밴드 프로세서(120)의 소프트웨어 모듈들은, 주로, 제 2 애플리케이션 프로그램(220), HIU 호스트 드라이버(223), BFS 호스트(225), 제 2 파일 시스템(221), 및 제 2 저장 드라이버(222), 를 포함한다. 상기 제 1 애플리케이션 프로그램(210)은 멀티미디어 기능들을 담당한다. 상기 제 1 애플리케이션 프로그램(210)은 상기 제 1 파일 시스템(211)을 사용할 수 있고, 상기 제 1 저장 드라이버(212)를 제어할 수 있고, 상기 제 1 저장장치(112)의 데이터에 접근할 수 있다. 상기 제 2 애플리케이션 프로그램(220)은 맨 머신 인터페이스들과 같은 기능들을 담당한다. 상기 제 2 애플리케이션 프로그램(220)은 상기 제 2 파일 시스템(221)을 이용할 수 있고, 상기 제 2 저장 드라이버(222)를 제어할 수 있으며, 상기 제 2 저장장치(122)에 저장되어 있는 데이터에 접근할 수 있다. 상기 베이스밴드 프로세서(120)는 상기 메모리 버스(130)를 통해 상기 애플리케이션 프로세서(110)의 HIU(115)에 연결된다. 상기 제 2 애플리케이션 프로그램(220)은 API 명령들을 상기 HIU 호스트 드라이버(223)로 송신한다. 그 후, 상기 HIU 호스트 드라이버(223)는 상기 명령들을 상기 메모리 버스(130)와 상기 HIU(115)를 통해 상기 HIU 클라이언트 드라이버(213)로 전송한다. 이어서, 상기 명령들은 상기 애플리케이션 프로세서(110)의 상기 제 1 애플리케이션 프로그램(210)으로 또한 전송된다. 상기 제 1 파일 시스템(211)이 상기 제 2 파일 시스템(221)에 저장되어 있는 데이터에 접근할 수 있도록 하기 위해, 상기 BFS 클라이언트(215)가 상기 애플리케이션 프로세서(110)에 부가되며, 상기 BFS 호스트(225)가 상기 베이스밴드 프로세서(120)에 부가된다. 상기 제 1 애플리케이션 프로그램(210)이 파일에 접근하도록 상기 제 1 파일 시스템(211)에 요청하는 경우, 상기 제 1 파일 시스템(211)은 상기 파일이 상기 제 1 파일 시스템(211) 하에 저장되어 있는지 상기 제 2 파일 시스템(221) 하에 저장되어 있는지 우선 확인한다. 예를 들어, 상기 파일의 경로가 "A:\"로 시작하는 경우, 그것은 상기 파일이 상기 제 1 파일 시스템(211) 하에 있다는 것을 내포하며; 상기 파일 경로가 "B:\"로 시작하는 경우, 그것은 상기 파일이 상기 제 2 파일 시스템(221) 하에 있다는 것을 내포한다. 그 후, 상기 제 1 파일 시스템(211)은 상기 BFS 클라이언트(215)에 명령을 송신할 것이다. 따라서, 상기 BFS 클라이언트(215)는 상기 HIU 클라이언트 드라이버(213)를 통해 상기 BFS 호스트(225)에 열기/읽기/쓰기/닫기(open/read/write/close) BFS 명령을 송신할 것이다. 상기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 상기 열기/읽기/쓰기/닫기 명령을 실행하기 위해 상기 제 2 파일 시스템(221)을 작동시키고, 그 다음, 실행된 결과를 상기 HIU 호스트 드라이버(223)를 통해 상기 BFS 클라이언트(215)로 전송한다.
도 3은, 여러 개의 BFS 명령들에 대응하는 제어 흐름도를 도시한다. 도 3(a)는 열기 BFS 명령에 대응하는 흐름도이다. 먼저, 상기 제 1 애플리케이션 프로그램(210)이 파일을 열도록 상기 제 1 파일 시스템(211)에 요청하는 경우, 상기 제 1 파일 시스템(211)은, 상기 파일의 경로에 따라, 상기 파일이 상기 제 1 파일 시스템(211) 하에 저장되어 있는지 상기 제 2 파일 시스템(221) 하에 저장되어 있는지를 확인한다. 상기 파일이 상기 제 2 파일 시스템(221)에 저장되어 있는 경우, 상기 제 1 파일 시스템(211)은 상기 BFS 클라이언트(215)에게 명령을 전송한다. 단계 300에서, 상기 BFS 클라이언트(215)는 상기 제 1 파일 시스템(211)으로부터 명령을 수신하고, 그 다음, 열기 BFS 명령을 상기 BFS 호스트(225)에 전송한다. 상기 열기 BFS 명령은 상기 파일의 경로, 이름, 열기 모드를 포함한다. 단계 303에서, 상기 열기 BFS 명령을 수신한 후, 상기 베이스밴드 프로세서(120)의 상기 BFS 호스트(225)는, 상기 경로, 이름, 열기 모드에 따라 상기 파일을 열기 위해 상기 제 2 파일 시스템(221)을 작동시킨다. BFS 읽기/쓰기 동작들의 효율을 높이기 위해, 본 발명에 따른 상기 BFS 호스트(225)는 상기 열린 파일을 상기 메모리(121)에서 전부 또는 부분적으로 버퍼링할 수 있다. 따라서, 상기 BFS 호스트(225)는, 상기 파일이 상기 메모리(121)에 카피되었다는 것을 나타내기 위해 상기 메모리(121)의 파일 맵핑 테이블에 엔트리(entry)를 부가할 수 있다. 단계 306에서, 상기 파일의 열기 결과는 상기 BFS 클라이언트(215)에 전송된다. 예를 들어, 상기 파일이 성공적으로 열린 경우, 비제로 파일 포인터(non-zero file pointer)가 다시 전송되며; 파일이 성공적으로 열리지 않은 경우, 파일 포인터는 제로이다. 결과를 수신한 후, 상기 BFS 클라이언트(215)는 결과를 상기 제 1 파일 시스템(211)을 통해 상기 제 1 애플리케이션 프로그램(210)에 보고한다.
도 3(b)는 읽기 BFS 명령에 대응하는 흐름도이다. 파일이 성공적으로 열린 후, 상기 제 1 애플리케이션 프로그램(210)은 상기 파일의 내용(content)을 읽는 것을 요청할 수 있다. 따라서, 상기 제 1 파일 시스템(211)은 상기 BFS 클라이언트(215)에 읽기 명령을 전송할 것이다. 단계 310에서, 상기 읽기 명령에 따라, 상기 BFS 클라이언트(215)는 읽기 BFS 명령을 상기 BFS 호스트(225)로 송신한다. 상기 읽기 BFS 명령은 상기 파일에 대응하는 읽기 단위 사이즈(read unit size), 읽기 단위 번호(read unit number), 및 파일 포인터를 포함할 수 있다. 단계 313에서, 상기 읽기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 상기 파일을 읽기 위해 상기 제 2 파일 시스템(221)을 작동시킨다. 읽기 효율을 높이기 위해, 상기 열린 파일은 상기 메모리(121)에 전부 또는 부분적으로 버퍼링될 수 있다. 따라서, 상기 BFS 호스트(225)는 상기 파일 맵핑 테이블에 따라서 상기 메모리(121)의 파일을 직접 읽을 수 있다. 단계 316에서, 상기 파일을 읽은 결과는 상기 BFS 클라이언트(215)로 다시 전송된다. 상기 결과 및 읽기 데이터를 수신한 후, 상기 BFS 클라이언트(215)는 상기 결과 및 데이터를 상기 제 1 파일 시스템(211)을 통해 상기 제 1 애플리케이션 프로그램(210)에 보고한다.
도 3(c)는 쓰기 BFS 명령에 대응하는 흐름도이다. 파일이 성공적으로 열린 후, 상기 제 1 애플리케이션 프로그램(210)은 상기 파일에 데이터를 쓸 것을 요구할 수 있다. 따라서, 상기 제 1 파일 시스템(211)은 상기 BFS 클라이언트(215)에 쓰기 명령을 전송할 것이다. 단계 320에서, 상기 쓰기 명령에 따라서, 상기 BFS 클라이언트(215)는 쓰기 BFS 명령을 상기 BFS 호스트(225)에 송신한다. 이 명령은 쓰기 단위 사이즈(write unit size), 쓰기 단위 번호(write unit number), 파일 포인 터 및 쓰여질 데이터를 포함할 수 있다. 단계 323에서, 상기 쓰기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 데이터를 상기 파일에 쓰기 위해 상기 제 2 파일 시스템(221)을 작동시킨다. 쓰기 효율성을 높이기 위해, 상기 열린 파일은 상기 메모리(121)에 전부 또는 부분적으로 버퍼링될 수 있다. 따라서, 상기 BFS 호스트(225)는 상기 파일 맵핑 테이블에 따라 상기 메모리(121)의 파일에 데이터를 직접 쓸 수 있다. 단계 326에서, 쓰기 결과가 상기 BFS 클라이언트(215)에 다시 전송된다. 상기 결과를 수신한 후, 상기 BFS 클라이언트(215)는 상기 결과를 상기 제 1 파일 시스템(211)을 통해 상기 제 1 애플리케이션 프로그램(210)에 보고한다. 유사하게, 도 3(d)에 도시된 바와 같이, 본 발명에 따른 BFS는 읽기/쓰기 위치를 변경하기 위해 찾기 BFS 명령을 또한 지원할 수 있다.
도 3(e)는 닫기 BFS 명령에 대응하는 흐름도이다. 상기 제 1 애플리케이션 프로그램(210)이 파일 닫기를 요청하는 경우, 닫기 명령이 상기 BFS 클라이언트(215)로 전송된다. 단계 330에서, 상기 BFS 클라이언트(215)는 닫기 BFS 명령을 상기 BFS 호스트(225)에 송신한다. 이 명령은 닫힐 상기 파일과 관련된 파일 포인터를 포함할 수 있다. 단계 333에서, 상기 닫기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 상기 파일 포인터에 따라 상기 파일을 닫기 위해 상기 제 2 파일 시스템(221)을 작동시킬 수 있다. 상기 파일이 상기 메모리(121)에서 전부 또는 부분적으로 버퍼링되었다면, 상기 제 2 파일 시스템(221)은 상기 메모리(121)에서 버퍼링된 데이터를 상기 파일에 다시 저장하고 상기 파일 맵핑 테이블의 파일에 대응하는 엔트리를 삭제할 필요가 있다. 단계 336에서, 닫기 결과는 상기 BFS 클라이언 트(215)로 다시 전송된다. 상기 결과를 수신한 후, 상기 BFS 클라이언트(215)는 상기 결과를 상기 제 1 파일 시스템(211)을 통해 상기 제 1 애플리케이션 프로그램(210)에 보고한다.
도 4는 HIU(115)를 통해 HIU 클라이언트 드라이버(213)와 HIU 호스트 드라이버(223) 사이에 BFS 명령들/결과들을 전송하는 예시적인 흐름도를 도시한다. 먼저, 단계 501에서, 상기 베이스밴드 프로세서(120)의 상기 HIU 호스트 드라이버(223)는 상기 HIU(115)의 레지스터를 주기적으로 검사하고, 상기 HIU 클라이언트 드라이버(213)로부터 명령을 대기한다. 상기 BFS 클라이언트(215)가 상기 HIU 클라이언트 드라이버(213)를 통해 BFS 명령을 전송한 후, 단계 502에서, 상기 HIU 클라이언트 드라이버(213)는 상기 BFS 명령의 파라미터들을 상기 HIU(115)의 레지스터에 먼저 설정한다. 상기 BFS 명령이 데이터를 포함하는 경우, 단계 503에서, 상기 HIU 클라이언트 드라이버(213)는 상기 HIU(115)의 FIFO 큐에 데이터를 설정한다. 레지스터 및 FIFO 큐를 설정한 후, 단계 504에서, 상기 HIU 클라이언트 드라이버(213)는 상기 BFS 명령을 상기 HIU(115)의 레지스터에 설정한다. 그 후, 단계 505에서, 상기 HIU 클라이언트 드라이버(213)는 상기 HIU(115)의 레지스터를 주기적으로 검사하고, 상기 HIU 호스트 드라이버(223)로부터 대응하는 결과를 대기한다. 단계 506에서, HIU 호스트 드라이버(223)는 상기 HIU 클라이언트 드라이버(213)로부터 BFS 명령을 검출한다. 단계 507에서, 상기 HIU 호스트 드라이버(223)는 상기 HIU(115)의 레지스터를 읽고 상기 BFS 명령의 파라미터들을 취득한다. 상기 BFS 명령이 데이터를 포함하는 경우, 단계 508에서, 상기 HIU 호스트 드라이버(223)는 상기 데이터를 취득하기 위해 상기 HIU(115)의 FIFO 큐를 읽는다. 상기 BFS 명령과 관련된 모든 정보를 완전히 얻은 후에, 상기 HIU 호스트 드라이버(223)는 상기 BFS 명령을 처리하기 위해 상기 BFS 호스트(225)를 작동시킨다.
상기 BFS 명령의 처리를 완료한 후, 상기 BFS 호스트(225)는 BFS 결과를 상기 HIU 호스트 드라이버(223)를 통해 다시 전송한다. 단계 512에서, 상기 HIU 호스트 드라이버(223)는 상기 BFS 결과의 파라미터들을 상기 HIU(115)의 레지스터에 우선 설정한다. 상기 BFS 결과가 데이터를 포함하는 경우, 단계 513에서, 상기 HIU 호스트 드라이버(223)는 데이터를 상기 HIU(115)의 FIFO 큐에 설정한다. 레지스터 및 FIFO 큐를 설정한 후, 단계 514에서, 상기 HIU 호스트 드라이버(223)는 상기 BFS 결과를 상기 HIU(115)의 레지스터에 설정한다. 그 후, 단계 501이, 상기 HIU(115)의 레지스터를 주기적으로 검사하고 상기 HIU 클라이언트 드라이버(213)로부터 새로운 명령들을 대기하기 위해, 상기 HIU 호스트 드라이버(223)에서 재수행된다. 단계 516에서, 상기 HIU 클라이언트 드라이버(213)는 상기 HIU 호스트 드라이버(223)로부터 상기 BFS 결과를 검출한다. 단계 517에서, 상기 HIU 클라이언트 드라이버(213)는 상기 BFS 결과의 파라미터들을 취득하기 위해 상기 HIU(115)의 레지스터를 읽는다. 상기 BFS 결과가 데이터를 포함하는 경우, 단계 518에서, 상기 HIU 클라이언트 드라이버(213)는 데이터를 얻기 위해 상기 HIU(115)의 FIFO 큐를 읽는다. 상기 BFS 결과와 관련된 모든 정보를 완전히 얻은 후에, 상기 HIU 클라이언트 드라이버(213)는 상기 BFS 결과를 처리하기 위해 상기 BFS 클라이언트(215)를 작동시킨다.
BFS 성능을 증가시키기 위해, 상기 BFS 호스트(225)는 열린 파일 데이터를 메모리에 전부 또는 부분적으로 버퍼링할 수 있으며 상기 메모리를 파일 맵핑 테이블로 관리할 수 있다. 도 5(a)는 상기 파일 맵핑 테이블의 예를 도시한다. 상기 파일 맵핑 테이블의 모든 아이템은 파일 포인터, 파일명, 버퍼주소, 파일 사이즈, 및 버퍼 사이즈의 컬럼들을 포함할 수 있다. 파일이 상기 BFS 호스트(225)에 의해 열린 후, 상기 파일의 이름은 상기 이름 컬럼에 기록되고, 상기 파일의 사이즈는 상기 파일 사이즈 컬럼에 기록되고, 상기 파일의 데이터를 상기 메모리의 버퍼영역에 저장된다. 상기 버퍼영역의 시작 주소는 상기 버퍼주소 컬럼에 기록되며; 상기 버퍼영역의 사이즈는 상기 버퍼 사이즈 컬럼에 기록된다. 본 예에서, 1인 파일 포인터를 가진 버퍼영역에서, 파일명 "IMG0001.JPG" 파일이 버퍼링된다. 상기 파일의 사이즈는 0x14e00이고, 상기 버퍼영역의 시작 주소는 0x08100000이고, 버퍼영역의 사이즈는 0x20000이다. 도 5(b)는 도 5(a)의 파일 맵핑 테이블에 대응하는 버퍼영역의 실시예를 도시한다. 메모리(121)에, 두 개의 버퍼영역들이 BFS 파일들에 할당된다. 버퍼영역(600)은 파일명 IMG0001.JPG인 BFS 파일에 할당된다. 상기 버퍼영역(600)의 사이즈는 0x20000이지만, 그 안의 파일 사이즈는 0x14e00이다. 버퍼영역(610)은 파일명 IMG0002.JPG인 BFS 파일에 할당된다. 상기 버퍼영역(610)의 사이즈가 0x20000이지만, 파일의 사이즈는 0이다; 이것은 그 안에 어떠한 데이터도 저장되어 있지 않은 것을 내포하고 있다.
BFS 동작들의 읽기/쓰기 성능을 더 증가시키기 위해, 상기 BFS 클라이언트는 파일 데이터의 버퍼부에 대한 캐시(cache)로서 상기 애플리케이션 프로세서(110)의 메모리를 이용할 수 있다. 따라서, BFS 클라이언트(215)는 매번 HIU(115)를 통해 데이터에 접근할 필요가 없다. 도 6은 BFS 클라이언트(215)가 메모리에 데이터를 버퍼링하는 예를 도시한다. 도 6의 우측은 베이스밴드 프로세서(120)에서의 메모리의 버퍼영역(600)을 도시한다; 이 영역은 상기 BFS 호스트(225)에 의해 열린 모든 파일 데이터를 버퍼링하기 위해 사용된다. 상기 버퍼영역(600)에서, 데이터는 고정된 사이즈(예를 들어, 1024 바이트)를 가진 복수 개의 파일 데이터 청크들(chunks)(711~719)의 조합으로 볼 수 있다. 본 예에서, 제 1 파일 데이터 청크(711)는 0에서 0x3FF의 파일 시프트를 가지는 데이터를 나타내며; 제 2 파일 데이터 청크(712)는 0x400에서 0x7FF로 시프트하는 파일을 가지는 데이터를 나타낸다. 도 6의 좌측은 애플리케이션 프로세서(110)에서의 BFS 클라이언트(215)를 위한 버퍼영역(700)의 파일 데이터 청크(703)를 도시한다. 상기 파일 데이터 청크(703)의 데이터는 상기 제 2 파일 데이터 청크(712)로부터 맵핑된다. 따라서, 상기 BFS 클라이언트(215)는, 상기 제 2 파일 데이터 청크(712) 대신 상기 파일 데이터 청크(703)의 데이터를 직접적으로 이용할 수 있다. 상기 BFS 클라이언트(215)에 의해 접근될 데이터가 상기 파일 데이터 청크(703)(예를 들어 0x400에서 0x7FF로 시프트하는 파일 사이에)에 버퍼링되지 않는 경우, 상기 BFS 클라이언트(215)는 이 버퍼영역의 캐시 매커니즘을 유지해야 한다. 우선, 이 버퍼영역의 데이터가 수정되었는지 확인한다. 데이터가 수정된 경우, 상기 파일 데이터 청크(703)는 상기 제 2 파일 데이터 청크(712)로 다시 쓰여지고, 필요한 데이터 청크가 상기 애플리케이션 프로세서(110)의 버퍼영역(700)으로 읽혀진다.
도 7은 애플리케이션 프로세서(110)에 의해 촬영된 영상을 베이스밴드 프로세서(120)의 파일 시스템에 쓰기(wrtie) 위한 예시적인 BFS 흐름을 도시한다. 본 예에서, 베이스밴드 프로세서(120)의 맨 머신 인터페이스 애플리케이션(220)은, 영상을 촬영하고 베이스밴드 프로세서(120)의 파일 시스템에 상기 영상을 쓰기 위해, 애플리케이션 프로세서(110)의 카메라 애플리케이션(210)을 API 명령들을 가지고 제어한다. 도 7(a)에 도시된 바와 같이, 단계 801에서, 상기 맨 머신 인터페이스 애플리케이션(220)은 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)를 통해 상기 카메라 애플리케이션(210)에 촬영 API 명령을 송신한다. 상기 촬영 API 명령에서, 상기 맨 머신 인터페이스 애플리케이션(220)은 영상이 상기 베이스밴스 프로세서(120)의 제 2 파일 시스템(221)에 쓰여져야할 것을 요청한다. 예를 들어, 상기 촬영 API 명령의 경로 파라미터는 "B:\image"일 수 있다. 단계 802에서, 상기 카메라 애플리케이션(210)은 상기 영상을 저장하기 위해 파일을 열도록 상기 애플리케이션 프로세서(110)의 제 1 파일 시스템(211)에 요청한다. 상기 경로 파라미터에 따라서, 상기 제 1 파일 시스템(211)은 상기 영상이 상기 제 2 파일 시스템(221)에 저장될 것을 확인한다. 단계 803에서, 상기 BFS 클라이언트(215)는 상기 파일을 열도록 요청받는다. 단계 804에서, 상기 제 1 파일 시스템(211)으로부터의 요청에 기초하여, 상기 BFS 클라이언트(215)는 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)를 통해 상기 BFS 호스트(225)에 열기 BFS 명령을 송신한다. 상기 BFS 명령은 상기 파일의 이름, 경로, 열기 모드를 포함한다. 예를 들어, 열기 모드 "w"는 파일에 데이터를 쓰는 것을 나타낸다. 단계 805에서, 상기 열기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 상기 BFS 명령에서의 이름, 경로, 및 열기 모드에 따라 파일을 열기 위해 상기 제 2 파일 시스템(221)을 작동시킨다. BFS 동작들의 효율성을 높이기 위해, 상기 BFS 호스트(225)는 열린 파일을 상기 메모리(121)에 전부 또는 부분적으로 버퍼링할 수 있다. 따라서, 엔트리가 메모리(121)의 파일 맵핑 테이블에 부가된다. 단계 806에서, 상기 BFS 호스트(225)는 열기 결과를 상기 HIU 클라이언트 드라이버(213)와 HIU 호스트 드라이버(223)를 통해 상기 BFS 클라이언트(215)에 전송한다. 상기 결과는 파일 포인터를 포함한다. 상기 결과를 수신한 후, 단계 807에서 상기 BFS 클라이언트(215)는 이 결과를 상기 제 1 파일 시스템(211)으로 전송한다. 단계 808에서, 상기 제 1 파일 시스템(211)은 이 결과를 상기 카메라 애플리케이션(210)에 전송한다.
도 7(b)는 도 7(a)의 연속이다. 파일이 성공적으로 열린 후, 단계 812에서, 상기 카메라 애플리케이션(210)은 영상 데이터를 파일에 쓰도록 상기 제 1 파일 시스템(211)에 요청할 수 있다. 단계 813에서, 상기 제 1 파일 시스템(211)은 데이터를 쓰도록 상기 BFS 클라이언트(215)에 요청한다. 단계 814에서, 상기 제 1 파일 시스템(211)으로부터의 요청에 따라서, 상기 BFS 클라이언트(215)는 쓰기 BFS 명령을 상기 HIU 클라이언트 드라이버(213)와 HIU 호스트 드라이버(223)를 통해 상기 BFS 호스트(225)에 전송한다. 상기 쓰기 BFS 명령의 파라미터들은 파일에 대응하는 쓰기 단위 사이즈, 쓰기 단위 번호, 파일 포인터, 및 쓰여질 영상 데이터를 포함한다. 단계 815에서, 상기 쓰기 BFS 명령을 수신한 후, 상기 BFS 호스트(225)는 영상 데이터를 상기 파일에 쓰도록 상기 제 2 파일 시스템(221)을 작동시킨다. BFS 쓰기 동작의 효율성을 높이기 위해, 상기 BFS 호스트(225)는 파일 맵핑 테이블에 따라서 상기 메모리(121)의 버퍼영역에 상기 영상 데이터를 쓸 수 있다. 단계 816에서, 상기 BFS 호스트(225)는 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)를 통해 상기 BFS 클라이언트(215)에 쓰기 결과를 전송한다. 상기 쓰기 결과는 성공적으로 쓰여진 데이터의 양과 에러 메시지를 포함한다. 상기 결과를 수신한 후, 단계 817에서, 상기 BFS 클라이언트(215)는 이 결과를 상기 제 1 파일 시스템(211)으로 보낸다. 단계 818에서, 상기 제 1 파일 시스템(211)은 상기 결과를 상기 카메라 애플리케이션(210)으로 전송한다. 영상에 대응하는 데이터는 파일에 개별적으로 쓰여진 여러 개의 부분들로 분리될 수 있다는 것이 주지되어야 한다. 따라서, 단계 812 내지 818은 영상에 대응하는 데이터가 완전히 쓰여질 때까지 반복적으로 수행될 수 있다. 그 후, 단계 822에서, 상기 카메라 애플리케이션(210)은 상기 파일을 닫도록 상기 제 1 파일 시스템(211)에 요청한다. 단계 823에서, 상기 제 1 파일 시스템(211)은 상기 파일을 닫도록 상기 BFS 클라이언트(215)에 요청한다. 단계 824에서, 상기 BFS 클라이언트(215)는 닫기 BFS 명령을 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)를 통해 상기 BFS 호스트(225)에 송신한다. 상기 닫기 BFS 명령의 파라미터는 상기 파일에 대응하는 파일 포인터를 포함한다. 단계 825에서, 상기 닫기 BFS 명령을 수신한 후, 상기 BFS 호스트는 상기 닫기 BFS 명령에 따라 상기 파일을 닫기 위해 상기 제 2 파일 시스템(221)을 작동시킨다. 상기 파일이 상기 메모리(121)에서 전부 또는 부분적으로 버퍼링된 경우, 상기 메모리(121)에서 버퍼링된 데이터는 상기 파일 맵핑 테이블에 따라 상기 파일로 다시 저장된다. 그 후, 상기 파일 맵핑 테이블의 파일에 대응하는 엔트리가 삭제된다. 단계 826에서, 닫기 결과는 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)를 통해 상기 BFS 클라이언트(215)로 다시 전송된다. 상기 결과를 수신한 후, 단계 827에서 상기 BFS 클라이언트(215)는 상기 결과를 상기 제 1 파일 시스템(211)에 보고한다. 단계 828에서, 상기 제 1 파일 시스템(211)은 상기 결과를 상기 카메라 애플리케이션(210)으로 전송한다. 따라서, 상기 애플리케이션 프로세서(110)에 의해 촬영된 영상은 상기 베이스밴드 프로세서(120)의 제 2 파일 시스템(221)에 저장된다.
다른 실시예들
도 8은 HIU 클라이언트 드라이버(213)와 HIU 호스트 드라이버(223)가 BFS 명령들/결과들을 HIU(115)를 통해 전송하기 위한 흐름의 다른 실시예를 도시한다. 이 실시예는 도 4의 실시예의 개선된 것이며 더 높은 효율성을 가진다. 도 4의 실시예에서, 상기 HIU 클라이언트 드라이버(213) 및 HIU 호스트 드라이버(223)는 주기적인 폴링(polling)에 의해 BFS 명령들/결과들의 존재를 계속적으로 확인한다. 도 8의 실시예에서, 상기 HIU 클라이언트 드라이버(213)와 HIU 호스트 드라이버(223)는 인터럽트들에 의해 BFS 명령들/결과들의 존재를 서로 알려준다. 따라서, 프로세서들이 HIU(115)를 주기적으로 확인할 필요가 없으며 다른 작업들을 더 효율적으로 실행할 수 있다. 인터럽트가 수신될 때까지만, 상기 프로세서들은 BFS 명령들/결과들을 확인한다. 도 8의 흐름도는 도 4의 흐름도와 유사하다. 차이점은 단계 998과 단계 999에 있다. 단계 998에서, 상기 HIU 클라이언트 드라이버(213)는 상기 HIU 호스트 드라이버(223)에 BFS 명령의 존재에 대하여 알려주기 위해 인터럽트를 설정한다. 단계 501의 기능이 단계 998에 의해 교체된다. 단계 999에서, 상기 HIU 호스트 드라이버(223)는 상기 HIU 클라이언트 드라이버(213)에 BFS 결과의 존재에 대하여 알려주기 위해 인터럽트를 설정한다. 단계 505의 기능은 단계 999에 의해 교체된다. 더 높은 효율성이 달성된다.
도 9는 BFS 호스트가 버퍼영역들을 배열하기 위한 다른 실시예를 도시한다. 본 실시예는 도 6의 실시예가 개선된 것이다. 본 실시예에서, BFS 호스트(225)는 전체 파일 대신 열린 파일의 일부만을 버퍼영역에 저장한다. 따라서, 도 6에 도시된 실시예와 비교하면, 본 실시예는 더 작은 버퍼 공간들을 이용한다. 도 9의 우측은 베이스밴드 프로세서(120)의 제 2 저장 장치(122)에 저장되어 있는 완전한 파일(1020)을 도시한다. 상기 파일(1020)은 고정된 사이즈를 가지는 복수의 파일 데이터 청크들(1021-1029)의 조합으로서 볼 수 있다. 도 9의 중간 부분은 파일 데이터 청크(1022)로부터 맵핑된 파일 데이터 청크(1012)를 도시한다. 상기 파일 데이터 청크(1012)는 상기 베이스밴드 프로세서(120)의 버퍼영역(1010)에 저장된다. 도 9 좌측은 애플리케이션 프로세서(110)의 버퍼영역(1001)을 도시한다. 도 6의 실시예에 따르면, BFS 클라이언트(215)는 상기 파일 데이터 청크(1012)로부터 맵핑된 파일 데이터 청크(1002)를 상기 버퍼 영역(1001)에 저장한다. 상기 파일 데이터 청크(1022)에 접근하고자 하는 경우, 상기 BFS 클라이언트(215)는 상기 버퍼영역(1001)의 파일 데이터 청크(1002)에 직접 접근할 수 있다. 상기 BFS 클라이언트(215)에 의해 접근될 데이터가 상기 파일 데이터 청크(1022)에 버퍼링되지 않은 경우, BFS 클라이언트(215)는 이 버퍼영역의 캐시 메커니즘을 유지해야 한다. 우선, 이 버퍼영역 내의 데이터가 변경되었는지 확인한다. 데이터가 변경되었다면, 파일 데이터 청크(1002)는 상기 베이스밴드 프로세서(120)의 파일 데이터 청크(1012)로 다시 쓰여지고, 상기 제 2 파일 시스템(221)은 상기 파일 데이터 청크(1012)를 상기 제 2 저장장치(122)의 파일에 다시 쓰도록 작동된다.
본 발명은, 모바일 폰의 두 프로세서들의 파일 시스템들을 브릿징하기 위한 방법 및 시스템을 제공한다. 본 발명에 따른 BFS를 가지고, 상기 애플리케이션 프로세서의 제 1 파일 시스템 상기 베이스밴드 프로세서의 제 2 파일 시스템에 저장되어 있는 데이터에 HIU를 통해 직접적으로 접근할 수 있다. 본 발명에 따르면, 두 개의 소프트웨어 모듈들이 부가된다. 하나는 상기 애플리케이션 프로세서에서 실행되는 BFS 클라이언트이고, 다른 하나는 상기 베이스밴드 프로세서에서 실행되는 BFS 호스트이다. 상기 BFS 호스트는 상기 BFS 클라이언트로부터의 BFS 명령을 HIU를 통해 수신하고 응답한다. 선행기술과 비교하면, 본 발명에서는, 두 프로세서들의 오리지날 프로그램들과 디자인들이 변경될 필요가 없다. 또한, 상기 BFS 클라이언트 및 BFS 호스트는 단지 적은 동작들과 메모리들만을 요구한다. 고속 접근이 메모리 버스를 통해 HIU를 설정함으로써 달성될 수 있다. 또한, BFS 클라이언트 및 BFS 호스트에 의해 열린 데이터는 BFS 읽기/쓰기 동작들의 효율성을 높이기 위해 전부 또는 부분적으로 메모리에 버퍼링될 수 있다.
위의 예와 설명들로, 본 발명의 특징들 및 사상들이 희망적으로 잘 기술될 것이다. 당업자들은 장치의 많은 변경들 및 수정들이 본 발명의 교시를 유지하면서 이루어질 수 있다는 것을 쉽게 관찰할 것이다. 따라서, 본 개시는 첨부된 청구항들의 한계와 경계들에 의해서만 제한되는 것으로 해석되어야 한다.
도 1은, 본 발명에 따른 모바일 폰의 기본적인 블럭도,
도 2는, 본 발명에 따른 애플리케이션 프로세서 및 베이스밴드 프로세서의 소프트웨어 모듈들을 도시한 도,
도 3은, 여러 개의 BFS 명령들에 대응하는 제어 흐름도들을 도시한 도,
도 4는, HIU 클라이언트 드라이버 및 HIU 호스트 드라이버 사이에 HIU를 통해 BFS 명령들/결과들을 전송하는 예시적인 흐름도를 도시한 도,
도 5(a)는, 파일 맵핑 테이블의 예를 도시한 도,
도 5(b)는, 도 5(a)의 파일 맵핑 테이블에 대응하는 버퍼영역의 실시예를 도시한 도,
도 6은, BFS 클라이언트가 메모리에 데이터를 버퍼링하는 예를 도시한 도,
도 7은, 애플리케이션 프로세서에 의해 촬영된 영상을 베이스밴드 프로세서의 파일 시스템에 쓰기 위한 예시적인 BFS 흐름을 도시한 도,
도 8은, HIU 클라이언트 드라이버 및 HIU 호스트 드라이버가 HIU를 통해 BFS 명령들/결과들을 전송하기 위한 흐름의 다른 실시예를 도시한 도,
도 9는, 버퍼영역들을 배열하기 위한 BFS 호스트에 대한 다른 실시예를 도시한 도.

Claims (25)

  1. 모바일 통신장치에서 제 1 파일 시스템과 제 2 파일 시스템을 브릿징하기 위한 방법으로서, 상기 모바일 통신장치는 애플리케이션 프로세서와 베이스밴드 프로세서를 포함하며, 상기 애플리케이션 프로세서는 인터페이스 유닛, 상기 제 1 파일 시스템, 및 브릿징 파일 시스템(bridging file system: BFS) 클라이언트 모듈, 을 포함하며, 상기 베이스밴드 프로세서는 상기 제 2 파일 시스템과 BFS 호스트 모듈을 포함하는, 상기 방법은:
    (a)상기 제 1 파일 시스템의 요청에 대한 응답으로, BFS 명령을 상기 BFS 클라이언트 모듈에서 상기 BFS 호스트 모듈로 상기 인터페이스 유닛을 통해 전송하는 단계;
    (b)상기 BFS 호스트 모듈에서, 상기 BFS 명령에 따라 파일 처리 절차를 수행하도록 상기 제 2 파일 시스템에 요청하는 단계; 및
    (c)상기 인터페이스 유닛을 통해, 상기 BFS 명령이 실행된 결과를 상기 BFS 호스트 모듈에서 상기 BFS 클라이언트 모듈로 전송하는 단계;를 포함하는, 브릿징 방법.
  2. 제 1 항에 있어서,
    상기 단계(a)는:
    (a1)상기 BFS 명령에 대응하는 목표 파라미터(target parameter)를 상기 인터페이스 유닛의 레지스터에 일시적으로 저장하는 단계;
    (a2)상기 BFS 명령에 대응하는 목표 데이터를 상기 인터페이스 유닛의 선입선출 큐(first-in-first-out(FIFO) queue)에 일시적으로 저장하는 단계;
    (a3)상기 BFS 명령을 상기 인터페이스 유닛의 상기 레지스터에 일시적으로 저장하는 단계;
    (a4)인터럽트 요청을 상기 인터페이스 유닛에서 상기 BFS 호스트 모듈로 전송하는 단계;
    (a5)상기 BFS 호스트 모듈이 상기 인터럽트 요청을 수신한 후, 상기 BFS 명령과 상기 목표 파라미터(target parameter)를 상기 레지스터에서 상기 BFS 호스트 모듈로 전송하는 단계; 및
    (a6)상기 목표 데이터를 상기 FIFO 큐에서 상기 BFS 호스트 모듈로 전송하는 단계;를 포함하는, 브릿징 방법.
  3. 제 1 항에 있어서,
    상기 BFS 호스트 모듈과 상기 BFS 클라이언트 모듈은, 상기 BFS 명령이 상기 인터페이스에 일시적으로 저장되어 있는지를 검출하기 위해 상기 인터페이스 유닛을 주기적으로 검사하는, 브릿징 방법.
  4. 제 1 항에 있어서,
    상기 단계(c)는:
    (c1)상기 BFS 명령이 실행된 결과에 대응하는 결과 파라미터를 상기 인터페이스 유닛의 레지스터에 일시적으로 저장하는 단계;
    (c2)상기 BFS 명령이 실행된 결과에 대응하는 결과 데이터를 상기 인터페이스 유닛의 FIFO 큐에 일시적으로 저장하는 단계;
    (c3)상기 BFS 명령이 실행된 결과를 상기 인터페이스 유닛의 상기 레지스터에 일시적으로 저장하는 단계;
    (c4)인터럽트 요청을 상기 인터페이스 유닛에서 상기 BFS 클라이언트 모듈로 전송하는 단계;
    (c5)상기 BFS 클라이언트 모듈이 상기 인터럽트 요청을 수신한 후, 상기 BFS 명령이 실행된 결과와 상기 결과 파라미터를 상기 레지스터에서 상기 BFS 클라이언트 모듈로 전송하는 단계; 및
    (c6)상기 결과 데이터를 상기 FIFO 큐에서 상기 BFS 클라이언트 모듈로 전송하는 단계;를 포함하는, 브릿징 방법.
  5. 제 1 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 열도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 상기 목표 파일의 열기 모드, 목표 파일 경로, 및 목표 파일명을 포함하며, 상기 BFS 명령이 실행된 결과는 파일 포인터를 포함하는, 브릿징 방법.
  6. 제 1 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 읽도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 읽기 단위 사이즈, 읽기 단위 번호, 및 파일 포인터를 포함하며, 상기 BFS 명령이 실행된 결과는 읽기 데이터, 성공적으로 읽은 번호, 및 읽기 결과를 포함하는, 브릿징 방법.
  7. 제 1 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 데이터를 목표 파일에 쓰도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 쓰기 단위 사이즈, 쓰기 단위 번호, 및 파일 포인터를 포함하며, 상기 BFS 명령이 실행된 결과는 성공적으로 쓰여진 번호 및 쓰기 결과를 포함하는, 브릿징 방법.
  8. 제 1 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 탐색하도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 파일 포인터, 쉬프트 량, 및 시작 포인트를 포함하며, 상기 BFS 명령이 실행된 결과는 탐색결과를 포함하는, 브릿징 방법.
  9. 제 1 항에 있어서,
    상기 모바일 통신장치는 메모리를 더 포함하며, 상기 BFS 명령이 상기 제 1 파일 시스템이 목표 파일을 열도록 상기 제 2 파일 시스템에 요청하는 것을 나타내 는 경우, 파일 처리 절차 동안, 상기 제 2 파일 시스템은 상기 목표 파일을 상기 메모리에 일시적으로 저장하며, 상기 목표 파일에 대응하는 엔트리(entry)를 상기 메모리의 파일 맵핑 테이블에 부가하는, 브릿징 방법.
  10. 제 9 항에 있어서,
    상기 애플리케이션 프로세서는 제 2 버퍼 메모리를 더 포함하며, 상기 단계(c) 이후에, 상기 BFS 클라이언트 모듈은 상기 BFS 명령이 실행된 결과를 상기 제 2 버퍼 메모리에 일시적으로 저장하는, 브릿징 방법.
  11. 모바일 통신장치로서,
    인터페이스 유닛;
    제 1 파일 시스템; 및
    브릿징 파일 시스템(BFS) 클라이언트 모듈로서, 상기 제 1 파일 시스템이 상기 BFS 클라이언트 모듈에 요청을 전송하는 경우, 상기 BFS 클라이언트 모듈은 BFS 명령을 상기 인터페이스 유닛을 통해 전송하는, 상기 BFS 클라이언트 모듈;을 포함하는, 애플리케이션 프로세서; 및
    제 2 파일 시스템; 및
    BFS 호스트 모듈로서, 상기 인터페이스 유닛으로부터 상기 BFS 명령을 수신한 후, 상기 BFS 호스트 모듈이 상기 BFS 명령에 따라 파일 처리 절차를 수행하도록 상기 제 2 파일 시스템에 요청하며, 상기 BFS 명령이 실행된 결과를 상기 BFS 호스트 모듈에서 상기 BFS 클라이언트 모듈로 상기 인터페이스 유닛을 통해 전송하는, 상기 BFS 호스트 모듈;을 포함하는, 베이스밴드 프로세서;를 포함하는, 모바일 통신장치.
  12. 제 11 항에 있어서,
    상기 요청에 응답하여, 상기 BFS 클라이언트 모듈은 상기 BFS 명령과 상기 BFS 명령에 대응하는 목표 파라미터(target parameter)를 상기 인터페이스 유닛의 레지스터에 일시적으로 저장하며, 상기 BFS 명령에 대응하는 목표 데이터를 상기 인터페이스 유닛의 FIFO 큐에 일시적으로 저장하는, 모바일 통신장치.
  13. 제 12 항에 있어서,
    상기 BFS 명령이 상기 레지스터에 저장된 후, 상기 인터페이스 유닛은 상기 BFS 호스트 모듈에 인터럽트 요청을 전송하고; 상기 인터럽트 요청을 수신한 후, 상기 BFS 호스트 모듈은 상기 레지스터로부터 상기 BFS 명령과 상기 목표 파라미터(target parameter)를 읽고, 상기 FIFO 큐로부터 상기 목표 데이터를 읽는, 모바일 통신장치.
  14. 제 11 항에 있어서,
    상기 BFS 호스트 모듈은, 상기 BFS 명령이 상기 인터페이스 유닛에 일시적으로 저장되어 있는지를 검출하기 위해 상기 인터페이스 유닛을 주기적으로 검사하는, 모바일 통신장치.
  15. 제 11 항에 있어서,
    상기 BFS 호스트 모듈은, 상기 BFS 명령이 실행된 결과 및 상기 BFS 명령이 실행된 결과에 대응하는 결과 파라미터를 상기 인터페이스 유닛의 레지스터에 일시적으로 저장하고, 상기 BFS 명령이 실행된 결과에 대응하는 결과 데이터를 상기 인터페이스 유닛의 FIFO 큐에 일시적으로 저장하는, 모바일 통신장치.
  16. 제 15 항에 있어서,
    상기 BFS 명령이 실행된 결과가 상기 레지스터에 저장된 후, 상기 인터페이스 유닛은 상기 BFS 클라이언트 모듈에 인터럽트 요청을 전송하며; 상기 인터럽트 요청을 수신한 후, 상기 BFS 클라이언트 모듈은 상기 레지스터로부터 상기 BFS 명령이 실행된 결과 및 상기 결과 파라미터를 읽고, 상기 FIFO 큐로부터 상기 결과 데이터를 읽는, 모바일 통신장치.
  17. 제 11 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 열도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은, 상기 목표 파일의 열기 모드, 목표 파일 경로, 및 목표 파일명을 포함하며, 상기 BFS 명령이 실행된 결과는 파일 포인터를 포함하는, 모바일 통신장치.
  18. 제 11 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 읽도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 읽기 단위 사이즈, 읽기 단위 번호, 및 파일 포인터를 포함하며, 상기 BFS 명령이 실행된 결과는 읽기 데이터, 성공적으로 읽혀진 번호, 및 읽기 결과를 포함하는, 모바일 통신장치.
  19. 제 11 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 데이터를 목표 파일에 쓰도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 쓰기 단위 사이즈, 쓰기 단위 번호, 및 파일 포인터를 포함하며, 상기 BFS 명령이 실행된 결과는 성공적으로 쓰여진 번호 및 쓰기 결과를 포함하는, 모바일 통신장치.
  20. 제 11 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 검색하도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 파일 포인터, 쉬프트 량, 및 시작 포인트를 포함하며, 상기 BFS 명령이 실행된 결과는 검색 결과를 포함하는, 모바일 통신장치.
  21. 제 11 항에 있어서,
    상기 BFS 명령은, 상기 제 1 파일 시스템이 목표 파일을 닫도록 상기 제 2 파일 시스템에 요청하는 것을 나타내며, 상기 BFS 명령은 파일 포인터를 포함하며, 상기 BFS 명령이 실행된 결과는 닫기 결과를 포함하는, 모바일 통신장치.
  22. 제 11 항에 있어서,
    메모리로서, 상기 BFS 명령이 상기 제 1 파일 시스템이 목표 파일을 열도록 상기 제 2 파일 시스템에 요청하는 것을 나타내는 경우, 파일 처리 절차 동안, 상기 제 2 파일 시스템은 상기 목표 파일을 상기 메모리에 일시적으로 저장하고, 상기 목표 파일에 대응하는 엔트리를 상기 메모리의 파일 맵핑 테이블에 부가하는, 상기 메모리를 더 포함하는, 모바일 통신장치.
  23. 제 22 항에 있어서,
    상기 제 1 파일 시스템이 상기 목표 파일을 열도록 상기 제 2 파일 시스템에 요청하는 경우, 상기 제 2 파일 시스템은 상기 파일 맵핑 테이블에 기초하여 상기 메모리에 일시적으로 저장되어 있는 목표 파일을 읽는, 모바일 통신장치.
  24. 제 22 항에 있어서,
    상기 베이스밴드 프로세서는, 제 1 버퍼 메모리로서, 파일 처리 절차 중에, 상기 제 2 파일 시스템이 목표 파일의 일부들을 상기 제 1 버퍼 메모리에 일시적으로 저장하는, 상기 제 1 버퍼 메모리를 더 포함하는, 모바일 통신장치.
  25. 제 22 항에 있어서,
    상기 애플리케이션 프로세서는, 제 2 버퍼 메모리로서, 상기 BFS 클라이언트 모듈이 상기 BFS 명령이 실행된 결과를 상기 제 2 버퍼 메모리에 일시적으로 저장하는, 상기 제 2 버퍼 메모리를 더 포함하는, 모바일 통신장치.
KR1020070125674A 2007-05-18 2007-12-05 모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법 KR100917677B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW096117824A TWI364204B (en) 2007-05-18 2007-05-18 System and method for bridging file system between two different processor in mobile phone
TW096117824 2007-05-18

Publications (2)

Publication Number Publication Date
KR20080101636A KR20080101636A (ko) 2008-11-21
KR100917677B1 true KR100917677B1 (ko) 2009-09-21

Family

ID=40028615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070125674A KR100917677B1 (ko) 2007-05-18 2007-12-05 모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US20080288550A1 (ko)
KR (1) KR100917677B1 (ko)
TW (1) TWI364204B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090143094A1 (en) * 2007-12-03 2009-06-04 Motorola, Inc. Method and Apparatus for Mode Switching in Dual-Core Mobile Communication Devices
US8117481B2 (en) * 2008-06-06 2012-02-14 Roche Diagnostics International Ag Apparatus and method for processing wirelessly communicated information within an electronic device
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
US8677074B2 (en) * 2008-12-15 2014-03-18 Nvidia Corporation Shared memory access techniques
CN103650401B (zh) * 2013-09-05 2017-03-08 展讯通信(上海)有限公司 一种移动终端内部通信方法
US20210181990A1 (en) * 2019-12-16 2021-06-17 Micron Technology, Inc. Interrupt signaling for a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030011099A (ko) * 2001-04-25 2003-02-06 코닌클리케 필립스 일렉트로닉스 엔.브이. 저장매체 상의 데이터를 저장 및 판독하는 방법 및 장치와저장매체
KR20070047672A (ko) * 2005-11-02 2007-05-07 정종광 화물차량용 타이어 냉각기

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274773A (en) * 1990-11-09 1993-12-28 Conner Peripherals, Inc. Flexible host interface controller architecture
US5864853A (en) * 1994-09-14 1999-01-26 Kabushiki Kaisha Toshiba Portable file system operable under various computer environments
US6651131B1 (en) * 2000-09-06 2003-11-18 Sun Microsystems, Inc. High bandwidth network and storage card
US6983169B2 (en) * 2003-03-14 2006-01-03 Motorola, Inc. Wireless device allowing for configuration of settings and method therefor
US7171532B2 (en) * 2004-08-30 2007-01-30 Hitachi, Ltd. Method and system for data lifecycle management in an external storage linkage environment
US7765399B2 (en) * 2006-02-22 2010-07-27 Harris Corporation Computer architecture for a handheld electronic device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030011099A (ko) * 2001-04-25 2003-02-06 코닌클리케 필립스 일렉트로닉스 엔.브이. 저장매체 상의 데이터를 저장 및 판독하는 방법 및 장치와저장매체
KR20070047672A (ko) * 2005-11-02 2007-05-07 정종광 화물차량용 타이어 냉각기

Also Published As

Publication number Publication date
US20080288550A1 (en) 2008-11-20
TWI364204B (en) 2012-05-11
KR20080101636A (ko) 2008-11-21
TW200847732A (en) 2008-12-01

Similar Documents

Publication Publication Date Title
US7289823B1 (en) Video overlay buffer mirrored through a shared mailbox between two processors in a feature phone
US8788634B2 (en) Portable device upgrade via a content transfer protocol
KR100917677B1 (ko) 모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법
US20130238582A1 (en) Method for operating file system and communication device
US7454667B2 (en) Techniques to provide information validation and transfer
US20100169548A1 (en) Memory card and method for controlling memory card
JPH1078882A (ja) ハードウェア資源マネージャ
WO2016118346A1 (en) User mode driver extension and preprocessing
US6976073B2 (en) Transparent remote data storage device and method
CN113986791A (zh) 一种智能网卡快速dma设计方法、系统、设备及终端
US20130232293A1 (en) High performance storage technology with off the shelf storage components
US20150074316A1 (en) Reflective memory bridge for external computing nodes
US8078771B2 (en) Sending large command descriptor block (CDB) structures in serial attached SCSI (SAS) controller
CN117591023A (zh) 一种基于硬件卸载的分散聚集列表查询写入读取方法及装置
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
US20110283068A1 (en) Memory access apparatus and method
US7827194B2 (en) Access to shared disk device on storage area network
JP2019164661A (ja) 情報処理装置、情報処理方法及びプログラム
US20090222588A1 (en) Portable device and remote computer synchronization
US8547985B2 (en) Network interface controller capable of sharing buffers and buffer sharing method
US7921238B2 (en) USB host system and method for transferring transfer data
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
US8671215B2 (en) Portable communications framework
JP2001101060A (ja) 通信データ先読み装置及び記録媒体
US20230418512A1 (en) Hardware accelerator

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: 20120625

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150713

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee