TWI416418B - 資料傳輸控制器、裝置及其方法 - Google Patents
資料傳輸控制器、裝置及其方法 Download PDFInfo
- Publication number
- TWI416418B TWI416418B TW099115221A TW99115221A TWI416418B TW I416418 B TWI416418 B TW I416418B TW 099115221 A TW099115221 A TW 099115221A TW 99115221 A TW99115221 A TW 99115221A TW I416418 B TWI416418 B TW I416418B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- drive
- storage medium
- core
- dedicated
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Description
本發明係有關一種控制器,特別是一種資料傳輸控制器及其控制方法。
快閃記憶體卡(Compact Flash,CF)係為符合快閃記憶體標準的儲存設備。快閃記憶體協會開發了快閃記憶體標準,且相繼頒佈了CF+和第4.0版(CF4)的快閃記憶體規格。早期的快閃記憶卡類型係利用普通的儲存資料設備,而現今,CF+和CF4卡延伸至包括輸入/輸出(Input/Output,I/O)設備或磁片資料儲存,這取決於具體的應用場合。CF+和CF4卡可支援較CF卡為高的資料傳輸率。
早期的CF卡僅可操作於個人電腦卡(PC Card)先進附加技術(Advanced Technology Attachment,ATA)使用記憶體模式。現在,CF4卡和CF+卡都可操作在個人電腦記憶卡國際組織(PCMCIA)模式,其包括PC Card ATA使用I/O模式和PC Card ATA使用記憶體模式。CF4卡還可操作在True IDE(Integrated Development Environment)模式,且CF+卡也可操作在True IDE模式。在每個模式下,資料係根據相應的讀出/寫入時序週期傳輸。所以,CF卡、CF+卡和CF4卡操作在資料傳輸率不同的模式下。
通常,使用一控制器控制一主機(例如,電腦)與一儲存設備之間之資料傳輸。通常,控制器被設定為預設模式,以根據預設的資料傳輸率與儲存設備進行通訊。然而,因為CF卡、CF+卡和CF4卡支援不同的資料傳輸率,可能會降低資料傳輸的效果。例如,如果控制器被設定在PC Card ATA使用記憶體模式,則CF+卡和CF4卡在此模式下操作之資料傳輸率相較於操作在True IDE模式為較低。
PCMCIA標準被廣泛應用於多種主機設備,例如,數位相機、數位音樂播放機、膝上型電腦、個人電腦等。PCMCIA標準定義了PCMCIA卡或PC卡,以擴展儲存空間,並支援輸入/輸出等。根據PCMCIA匯流排的類型,PC卡可包括16位元PC卡(例如,隨機存取記憶體(RAM)和快閃記憶體)以及32位元PC卡(例如,CardBus PC卡,如:數據機、網路和電視卡等)。例如,16位元PC卡採用16位元PCMCIA匯流排傳輸資料。32位元PC卡採用32位元PCMCIA匯流排傳輸資料。
True IDE模式包括可編程輸入/輸出(PIO)模式和直接記憶體存取(Direct Memory Access,DMA)模式。16位元PC卡僅支援PIO模式。主機設備的作業系統(例如,MICROSOFTWINDOWS)可提供一通用設備驅動器,以驅動16位元PC卡。例如,通用設備驅動器可致能主機設備使其工作在PIO模式。在PIO模式中,主機設備之中央處理器(CPU)執行指令,以儲存I/O位址空間,進而執行與PC卡之間的資料傳輸。在PIO模式下,整個讀或寫的操作時間內都可能佔用CPU。
CF卡(包含:CF+和CF4卡)也是一種16位元大容量儲存設備。專用讀卡機(例如:USB讀卡機或1394讀卡機)可將CF卡連接到主機設備。CF卡可支援PIO模式和DMA模式。在DMA模式下,讀卡機在CF卡和主機設備的記憶體之間傳輸資料,而不佔用處理器時間。因此,可同時進行由CPU執行的運算操作和由讀卡機執行的資料傳輸。由此,DMA模式比PIO模式具有更高的資料傳輸速率。
如果專用讀卡機失效,CF卡則透過插槽適配器或通用讀卡機插入一PC卡插槽。換言之,16位元PC卡和CF卡可共用主機設備上的相同插槽(例如:64接腳雙排介面)。在這種情況下,CF卡可被用作為16位元PC卡。例如,作業系統的通用設備驅動器可致能CF卡工作在PIO模式而非DMA模式。因此,CF卡的資料傳輸率可降低,且主機設備的效率亦下降。
為解決上述技術問題,本發明提供了一種資料傳輸裝置,一插槽,與具有不同類型的一儲存媒體互動;一電腦可讀媒體,儲存與一第一工作模式有關之電腦可執行之一通用驅動器以及與一第二工作模式有關之電腦可執行之一專用驅動器,其中,該通用驅動器與該不同類型的該儲存媒體中相容,該專用驅動器僅與部分類型的該儲存媒體相容;以及一控制器,耦接至該插槽和該電腦可讀媒體,當該儲存媒體插入該插槽時,控制器從該通用驅動器和該專用驅動器中選擇一所選驅動器,並根據該所選驅動器工作在一相應工作模式,以與該儲存媒體交換一資料資訊,其中,如果該儲存媒體之類型與該專用驅動器相容,則該所選驅動器包括該專用驅動器,否則,該所選驅動器包括該通用驅動器。
本發明還提供了一種資料傳輸方法,包括:載入與一第一工作模式相關的電腦可執行之一通用驅動器,該通用驅動器與不同類型的一儲存媒體相容,其中,一插槽與該儲存媒體互動;載入與一第二工作模式相關的電腦可執行之一專用驅動器,該專用驅動器僅與部分類型的該儲存媒體相容;當該儲存媒體插入該插槽時,從該通用驅動器和該專用驅動器之間選擇一所選驅動器;以及根據該所選驅動器工作在一相應工作模式,與該儲存媒體交換一資料資訊,如果該儲存媒體之類型與該專用驅動器相容,該所選驅動器包括該專用驅動器,否則,該所選驅動器包括該通用驅動器。
本發明還提供了一種控制器,該控制器耦接於一插槽,傳輸一主機和該插槽之間的一資料資訊,其中,該插槽能夠與不同類型的一儲存媒體互動,包括:一通用核心,根據來自電腦可執行之一通用驅動器的一控制指令工作於一第一工作模式,以傳輸該資料資訊,該第一工作模式與該不同類型的該儲存媒體相容;一專用核心,根據來自電腦可執行之一專用驅動器的一控制指令工作於一第二工作模式,以傳輸該資料資訊,該第二工作模式僅與該部分類型的該儲存媒體相容;以及一多工器,耦接至該通用核心和該專用核心,根據耦接至該多工器的一暫存器中的一資料集,從該通用核心和該專用核心之間選擇一所選核心,以傳輸該資料資訊,如果該儲存媒體之類型為僅與該第二工作模式相容之部分類型,則該所選核心包括該專用核心,否則,該所選核心包括該通用核心。
以下將對本發明的實施例給出詳細的說明。雖然本發明將結合實施例進行闡述,但應理解這並非意指將本發明限定於這些實施例。相反,本發明意在涵蓋由後附申請專利範圍所界定的本發明精神和範圍內所定義的各種變化、修改和均等物。
此外,在以下對本發明的詳細描述中,為了提供針對本發明的完全的理解,提供了大量的具體細節。然而,於本技術領域中具有通常知識者將理解,沒有這些具體細節,本發明同樣可以實施。在另外的一些實例中,對於大家熟知的方法、程序、元件和電路未作詳細描述,以便於凸顯本發明之主旨。
本發明實施例提供了一種資料傳輸系統。資料傳輸系統包括一插槽、一控制器和一電腦可讀媒體。插槽可與不同類型的儲存媒體(例如,CF卡和16位元PC卡)互動。電腦可讀媒體儲存與第一工作模式(例如,PIO模式)相關的通用驅動器,且與每一種類型之儲存媒體(例如,16位元PCMCIA卡和CF卡)均相容。電腦可讀媒體還儲存與第二工作模式(例如,DMA模式)相關的專用驅動器,且僅與部分類型的儲存媒體(例如,CF卡)相容。當儲存媒體插入插槽時,控制器從通用驅動器和專用驅動器中選擇一驅動器,並根據所選驅動器工作在一相應工作模式,以傳輸資料資訊。
有利之處在於,當儲存媒體為部分相容於專用驅動器之類型的一種時,所選驅動器包括專用驅動器,否則,所選驅動器包括通用驅動器。例如,如果儲存媒體為CF卡,則選擇專用驅動器,以致能在DMA模式下進行資料傳輸而非PIO模式。因此,資料傳輸率可獲得提高且改善資料傳輸系統的效率。
圖1所示為根據本發明一實施例資料傳輸系統100示意圖。在圖1的實施例中,資料傳輸系統100包括主機102、介面120、控制器140和一客戶端(client)。在一實施例中,客戶端包括一儲存媒體106,包括,CF卡、CF+卡或CF4卡,但不以此為限。控制器140和介面120在主機102和儲存媒體106之間傳輸資料。介面120可為PCI介面、PCI-X介面或PCIe介面,但不以此為限。主機102可為電子設備或系統,例如,電腦、個人數位助理(PDA)與行動電話等。主機102可從儲存媒體106讀出資料或將資料寫入儲存媒體106。
介面120能在主機102和控制器140之間作為一I/O互連。在主機102和控制器140之間傳輸的資訊可包括資料資訊和控制資訊。在一實施例中,主機102操作在主狀態,以啟動資料傳輸,發送一控制資訊至控制器140。在資料資訊被傳輸之前,控制資訊可致能主機102和控制器140之間之握手(handshaking)程序。控制資訊可定義資料傳輸的特徵,例如,資料是否是寫入儲存媒體106還是從儲存媒體106讀出。例如,在寫入操作中,資料資訊從主機102被傳輸至控制器140。在讀出操作中,資料資訊從控制器140被傳輸至主機102。控制資訊還可表示資料傳輸的狀態,例如,資料傳輸的開始。在另一實施例中,儲存媒體106操作在主狀態,發送控制資訊至控制器140。在一實施例中,介面120可分析來自主機102的資訊以判斷主機102傳輸的是資料資訊還是控制資訊。根據主機102傳輸的是資料資訊還是控制資訊,介面120可選擇性地透過一資料路徑174或一控制路徑176傳輸資訊。若主機102傳輸的是資料資訊,資料可透過資料路徑174傳輸至控制器140。若主機102傳輸的是控制資訊,控制資訊可透過控制路徑176傳輸至控制器140。此外,介面120可將來自控制器140之資料資訊封裝成主機102可讀的資料封包(機器可讀資料),並將之傳輸至主機102。
控制器140可在介面120和儲存媒體106之間傳輸資料資訊。有利之處在於,耦接至介面120和儲存媒體106之間的控制器140之可操作在多個操作模式,以控制主機102和儲存媒體106間的資料傳輸。在一實施例中,多個操作模式中具有至少兩個操作模式的資料讀出/寫入時序週期不同。讀出週期時間為一讀出操作和下一個讀出操作之間需要的時間。相似地,寫入週期時間為一寫入操作和下一個寫入操作之間需要的時間。所以,多個操作模式中具有至少兩個操作模式的資料傳輸率為不同。在一實施例中,多個模式包括,PC card ATA模式、PCMCIA模式和True IDE模式,但不以此為限。在PCMCIA模式,根據PCMCIA標準之相應讀出/寫入時序傳輸資料。在True IDE模式,以True IDE標準之相應讀出/寫入時序傳輸資料。
有利之處在於,控制器140可基於儲存媒體106的類型從多個操作模式中選擇一操作模式。由於不同類型的儲存媒體106可能支援的資料傳輸模式不同,控制器140可選擇和儲存媒體106相容的模式在主機102和儲存媒體106之間傳輸資料。例如,如果儲存媒體106為CF+卡或CF4卡,則控制器140可選擇PCMCIA模式或True IDE模式為操作模式。換言之,控制器140可為一通用控制器,可根據儲存媒體106的類型選擇一適當的操作模式。控制器140之可操作在所選的操作模式中,並根據相應的資料讀出/寫入時序週期和相應的資料傳輸率,在介面120和儲存媒體106之間傳輸資料。在一實施例中,如果多個操作模式中與儲存媒體106相容的模式不只一種,則控制器140可選擇一能提供期望資料傳輸效能之操作模式,例如,能提供較高資料傳輸率之操作模式。
另外,在一實施例中,控制器140所選擇的操作模式可包括多個子模式(sub-mode)。控制器140可基於一預設操作標準從多個子模式中選擇一操作子模式。例如,PCMCIA模式包括多個子模式,例如,PC card ATA使用I/O模式和PC card ATA使用記憶體模式。當控制器140操作在PC card ATA使用I/O模式或PC card ATA使用記憶體模式,儲存媒體106使用不同的信號以與控制器140通訊。例如,當儲存媒體106為CF+或CF4卡,且當控制器140操作在PC card ATA使用I/O模式時,儲存媒體106使用其接腳34和35的信號和控制器140通訊。在一實施例中,控制器140使用接腳34的IORD信號從儲存媒體106讀出信號,並使用接腳35的IOWR信號將來自主機102的資料寫入儲存媒體106。然而,在一實施例中,當控制器140操作在PC card ATA使用記憶體模式,儲存媒體106不使用接腳34和35的信號與控制器140通訊。例如,當儲存媒體106為CF+或CF4卡,且當控制器140操作在PC card ATA使用記憶體模式,儲存媒體106使用其接腳9和36的信號和控制器140通訊。在一實施例中,控制器140使用接腳9的OE信號從儲存媒體106讀出資料,使用接腳36的WE信號將來自主機102的資料寫入儲存媒體106。然而,當控制器140操作在PC card ATA使用I/O模式時,控制器140使用接腳9的OE信號從儲存媒體106的配置暫存器讀出資料,使用接腳36的WE信號將資料寫入儲存媒體106的配置暫存器。
True IDE模式可包括多個子模式,例如,PIO模式、多字元直接記憶體存取(Multiword Direct Memory Access,MDMA)模式和極速直接記憶體存取UDMA(Ultra Direct Memory Access,UDMA)模式。例如,當儲存媒體106為CF+或CF4卡,且當控制器140操作在PIO模式時,主機102和儲存媒體106之間每傳輸一預設長度之資料(例如,512位元),需要一個中斷。當控制器140操作在MDMA模式時,可一次傳輸所有的資料而無需中斷。當控制器140操作在UDMA模式時,儲存媒體106可為主狀態,例如,儲存媒體106可啟動從儲存媒體106到主機102的資料傳輸。在一實施例中,儲存媒體106可發送一控制資訊(例如,一直接記憶體請求)至控制器140以啟動資料傳輸。PIO模式可包含多種PIO子模式,且可有不同之讀出/寫入時序週期。類似的,MDMA模式可包含多種MDMA子模式且可有不同之讀出/寫入時序週期。UDMA模式可包含多種UDMA子模式且可有不同之讀出/寫入時序週期。控制器140可基於一預設操作標準從多個子模式中選擇一適當之操作子模式。
在一實施例中,預設操作標準係為資料傳輸率標準。控制器140選擇一操作子模式以獲得介面120和儲存媒體106之間之期望資料傳輸率,例如,相對較高資料傳輸率。在另一實施例中,預設操作標準係為優先權標準。控制器140可判斷資料傳輸請求的優先權,且根據介面120和儲存媒體106之間傳輸資料的資料傳輸請求的優先權,選擇適當之操作子模式。例如,在資料傳輸系統100中,主機102和儲存媒體106之間傳輸資料的資料傳輸請求可能和其他請求共存,例如中斷請求。若主機102和儲存媒體106之間傳輸資料的資料傳輸請求之優先權較高,控制器140可選擇能夠支援高資料傳輸率之模式為操作子模式。
在圖1的實施例中,控制器140包括資料緩衝器142、暫存器144、模式選擇模組130、多工器152和核心模組160。資料緩衝器142可緩衝來自介面120的資料資訊和提供資料資訊給核心模組160。資料緩衝器142也可緩衝來自核心模組160的資料資訊並提供資料資訊至介面120。當主機102操作在主狀態時,暫存器144可儲存來自介面120的控制資訊,或當儲存媒體106操作在主狀態時,暫存器144可儲存來自儲存媒體106的控制資訊。暫存器144還可儲存指示控制器140之可操作之多個操作模式及子模式之模式資料。模式選擇模組130可存取模式資料,以為控制器140選擇操作模式和/或操作子模式。在一實施例中,暫存器144也儲存表示資料傳輸是否完成的資料,且主機102可存取此資料。在此情況下,核心模組160可產生表示傳輸是否完成的資料。在另一實施例中,主機102可自行判斷資料傳輸是否完成。
核心模組160耦接至資料緩衝器142,且包括多個核心。每一核心可操作在相應的模式下以與儲存媒體106通訊。在一實施例中,每一核心可為一微控制器,且根據相應模式的讀出/寫入時序產生信號(例如,讀出/寫入信號)進而致能資料傳輸。儲存媒體106接受核心所產生的信號且做出相應的反應。例如,若主機102啟動一資料傳輸以將資料寫入儲存媒體106,相應的核心可根據來自主機102的控制資訊產生一寫入信號。相應地,儲存媒體106接收來自主機102的資料資訊。若主機102啟動一資料傳輸以從儲存媒體106讀出資料,相應的核心可根據來自主機102的控制資訊產生一讀出信號,儲存媒體106傳送/提供資料資訊至主機。在一實施例中,若選擇了一操作模式,根據所選的操作模式致能相對應的核心,以與儲存媒體106通訊。透過被致能的核心,資料可在主機102和儲存資料106之間傳輸。
在一實施例中,在模式選擇模組130選擇操作模式之前,控制器140操作在一預設模式,且一可操作在預設模式的預設核心可被用於與儲存媒體106通訊。
基於儲存媒體106的類型,模式選擇模組130可從多個操作模式中選擇一操作模式,且基於一預設操作標準,從多個子模式中選擇一操作子模式。更確切地說,模式選擇模組130可以存取儲存於暫存器144中用以表示控制器140之可操作的多個操作模式和子模式的模式資料。模式選擇模組130可檢測儲存媒體106的類型和儲存媒體106所支援的模式。在一實施例中,模式選擇模組130可發送一識別命令給暫存器144以請求儲存媒體106的識別資訊。表示儲存媒體106之識別命令之資料可被寫入暫存器144。核心模組160中的預設核心可監測暫存器144,並相應的產生一用以請求儲存媒體106之識別資訊的信號。相應地,儲存媒體106可藉由預設核心以將一表示儲存媒體106類型和儲存媒體106所支援的模式的資料,傳送給暫存器144。因此,模式選擇模組130可存取暫存器144中所儲存之儲存媒體106的識別資訊。模組選擇模組130從多個模式選擇一與儲存媒體106相容的一操作模式。在一實施例中,若多個操作模式中,具有不只一個操作模式與儲存媒體106相容,則模式選擇模組130選擇可提供期望資料傳輸效能(例如,相對較高資料傳輸率)之模式。若所選的操作模式包括多個子模式,模式選擇模組130還可根據預設操作標準,進一步從相應的多個子模式中選擇一操作子模式。
一旦選擇出操作模式,模式選擇模組130可配置控制器140以操作在所選的操作模式或子模式。在一實施例中,透過將表示所選的操作模式或子模式的資料寫入暫存器144,模式選擇模組130可配置控制器140。
多工器152耦接至暫存器144和核心模組160,並根據暫存器144中表示所選的操作模式或子模式的資料,致能核心模組160中的一個核心。如此一來,根據所選的操作模式或子模式的資料傳輸率,被致能的核心可與儲存媒體106通訊,例如,傳輸資料資訊至儲存媒體106。
在此描述從主機102傳輸資料至儲存媒體106的一實施例。在一實施例中,透過介面120和控制路徑176,主機102首先傳輸控制資訊至控制器140以啟動從主機102至儲存媒體106的資料傳輸。當暫存器144接收到控制資訊,模式選擇模組130可被致能以選擇一操作模式。模式選擇模組130可選擇一操作模式,以及進一步選擇一操作子模式。因此,模式選擇模組130可設定控制器140至所選的操作模式和所選的操作子模式。根據模式選擇模組130所選的操作模式和操作子模式,多工器152可致能核心模組160中的一個核心以與儲存媒體106通訊。透過介面120和資料路徑174,主機102傳輸資料資訊至資料緩衝器142。資料緩衝器142可提供資料資訊至核心模組160中的被致能的核心。這樣,資料資訊可被傳送至儲存媒體106。在一實施例中,主機102可存取暫存器144以判斷資料傳輸是否完成。
在此描述從儲存媒體106傳輸資料至主機102的一實施例。在一實施例中,透過介面120和控制路徑176,主機102首先發送控制資訊至控制器140,以請求從儲存媒體106至主機102的資料傳輸。待控制器被設定於模式選擇模組130所選的操作模式和操作子模式後,多工器152致能核心模組160中的一核心以與儲存媒體106通訊。因此,資料可以從儲存媒體106傳輸至核心模組160。透過資料緩衝器142、資料路徑174、以及介面120,資料可被傳送至主機102。在一實施例中,主機102可存取暫存器144以判斷資料傳輸是否完成。
如上所述,主機102操作在主狀態以啟動一資料傳輸。在另一實施例中,儲存媒體106操作在主狀態啟動資料傳輸。在此實施例中,模式選擇模組130可被主機102致能,以選擇一操作模式。例如,當儲存媒體106為CF+卡或CF4卡,模式選擇模組130選擇True IDE模式為操作模式,且進一步選擇UDMA為操作子模式。因此,模式選擇模組130設定控制器140為UDMA模式。多工器152致能核心模組160中的一個可以操作在UDMA模式的核心以與儲存媒體106通訊。在UDMA模式,儲存媒體106操作在主狀態以啟動儲存媒體106和主機102間的資料傳輸。
更具體地說,在一實施例中,儲存媒體106發送控制資訊至控制器140以啟動資料傳輸。核心模組160中被致能的核心可分析來自儲存媒體106的資訊,並判斷儲存媒體106傳輸的是資料資訊還是控制資訊。若儲存媒體106傳輸的是控制資訊,核心模組160可分析控制資訊以判斷儲存媒體106啟動的是一個讀出操作(從主機102讀出資料)還是寫入操作(將資料寫入主機102)。若儲存媒體106發送的是資料資訊,控制器140透過資料路徑174傳輸資料。若儲存媒體106啟動一將資料寫入主機102的資料傳輸,則被致能的核心可根據來自儲存媒體106的控制資訊產生一讀出信號。相應地,主機102透過資料路徑174接收來自儲存媒體106的資料資訊。若儲存媒體106啟動一從主機102讀出資料資料傳輸,則被致能的核心可根據來自儲存媒體106的控制資訊產生一寫入信號。相應地,主機102透過資料路徑174傳輸/提供資料資訊給儲存媒體106。
所以,控制器140可基於儲存媒體106的類型選擇操作模式。此外,控制器140可根據預設操作標準,選擇操作子模式。有利之處在於,控制器140可根據不同的儲存媒體106,在不同的操作標準下,提供資料傳輸之控制。
在一實施例中,在儲存媒體106耦接至控制器140之前,控制器140可被設定為一預設模式。在一實施例中,預設模式可為一支援相對較高資料傳輸率的模式。待儲存媒體106耦接至控制器140之後,模式選擇模組130可判斷預設模式是否與儲存媒體106相容。若預設模式和儲存媒體106相容,控制器140則可操作在預設模式與儲存媒體106通訊。這樣,可以獲得較高的資料傳輸率。若預設模式和儲存媒體106不相容,則模式選擇模組130可選擇其他模式。
圖2所示為根據本發明一實施例資料傳輸系統200示意圖。和圖1具有相同元件符號之元件具有相似之功能。在圖2的例子中,資料傳輸系統200包括主機102、PCIe介面220、控制器140和儲存媒體106。儲存媒體106可為CF卡、CF+卡或CF4卡,但不以此為限。控制器140和PCIe介面220可在主機102和儲存媒體106之間傳輸資料。
PCIe介面220在主機102和控制器140之間作為一I/O互連,以傳輸資料。PCIe係為一具有相對較高資料傳輸率的電腦互連標準。例如,PCIe連接可支援高達32個路徑和提供約2.5 Gigabits/second/Lane/direction的有效帶寬。因此,PCIe提供比PCI和PCI-X為高的性能。此外,PCIe支援熱插拔。在圖2的實施例中,PCIe介面220包括PCIe實體層222和PCIe核心224。若主機102發送一串列信號至PCIe介面220,PCIe實體層222可轉換串列信號為一並行信號,且將此並行信號提供至PCIe核心224。PCIe核心224可分析並行信號以判斷主機102傳輸的是資料資訊還是控制資訊。PCIe核心224透過資料路徑174傳輸資料資訊至控制器140,透過控制路徑176傳輸控制資訊至控制器140。這樣,來自主機102的資訊可透過PCIe介面220傳送至控制140。
相似地,若控制器140傳輸資料資訊至PCIe介面220,PCIe核心224可將資料資訊打包且提供此並行之資料資訊封包給PCIe實體層222。PCIe實體層222可轉換並行資料為串列資訊,且傳送至主機102。這樣,PCIe介面220可傳輸資料資訊至主機102。
控制器140可與儲存媒體106通訊以在PCIe介面220和儲存媒體106之間傳輸資料。在圖2的例子中,控制器140包括資料緩衝器142、暫存器144、模式選擇器130、多工器152和核心模組160。在一實施例中,核心模組160包括PCMCIA核心246和True IDE核心248。PCMCIA核心246可操作在PCMCIA模式。True IDE核心248可操作在True IDE模式。
模式選擇器130可根據儲存媒體106的類型,從PCMCIA模式和True IDE模式中選擇一操作模式。此外,若所選的操作模式包括多個子模式,模組選擇模組130可以根據預設操作標準從所選的操作模式所相對應的多個子模式中選擇一操作子模式。
在圖2的實施例中,模組選擇模組130包括一微控制器單元(MCU)234和韌體236。韌體236可儲存電腦可執行程式。微控制器單元234可執行韌體236中的電腦可執行程式,以選擇操作模式和/或子模式。微控制器單元234可讀出暫存器144中表示控制器140之可操作的操作模式和/或子模式的模式資料。微控制器單元234可發送一識別命令(例如,若儲存媒體106為一CF4卡,則發送一設備識別命令)以檢測儲存媒體106的類型和儲存媒體106所支援的模式。待選擇出操作模式和/或子模式之後,微控制器單元234可發送一配置命令(例如,若儲存媒體106為一CF4卡,則發送一設定特徵命令)以配置儲存媒體106中的暫存器,並透過將表示所選的操作模式和/或子模式的資料寫入暫存器144以設定儲存媒體106為所選的操作模式和/或子模式。
根據模式選擇模組130所選的操作模式,多工器152根據暫存器144中表示所選的操作模式的資料,致能PCMCIA核心246和True IDE核心248中的一個。因此,被致能的核心可根據所選的操作模式和/或子模式之相應的資料傳輸率與儲存媒體106通訊。在另一實施例中,一個單一核心可操作在PCMCIA模式或True IDE模式以與儲存媒體106通訊。如此一來,主機102和儲存媒體106之間的資料傳輸可被致能。
所以,控制器140可根據不同的儲存媒體106,在不同的操作標準下,控制資料傳輸。此外,儲存媒體106可透過具有較高性能之PCIe介面220與主機102通訊。這樣,資料傳輸的性能可被改善。此外,由於PCIe介面220支援熱插拔,所以控制器140支援熱插拔。
在一實施例中,在儲存媒體106耦接至控制器140之前,控制器可被設定為一預設模式。在一實施例中,預設模式可為True IDE模式。待儲存媒體106耦接至控制器140之後,模式選擇模組130可發送一識別命令(例如,若儲存媒體106為一CF4卡,則發送一設備識別命令)至儲存媒體106,以判斷預設模式是否和儲存媒體106相容。若預設模式和儲存媒體106相容,微控制器單元234可發送一命令(例如,若儲存媒體106為一CF4卡,則發送一設定特徵命令)以設定儲存媒體106至PCMCIA模式。
圖3所示為根據本發明一實施例資料傳輸系統300示意圖。和圖2具有相同元件符號之元件具有相似之功能。
在圖3所示的實施例中,模式選擇模組130可以設置在控制器140之外。模式選擇模組130包括一驅動器336,例如,用於選擇操作模式和操作子模式的電腦可執行程式。在一實施例中,主機102的信號處理器(未出示),例如,中央處理器,可執行驅動器336以執行模式選擇的功能。
圖4所示為根據本發明一實施例控制資料傳輸的方法流程400。圖4將結合圖1進行說明。圖4中雖示出詳細步驟,然僅為示例,本發明同樣亦適用於執行各種其他與變化步驟。在一實施例中,流程400係以儲存於電腦可讀媒體中之電腦可執行指令實現。
在步驟402中,檢測儲存媒體106的類型和儲存媒體106所支援的模式。在步驟404中,基於儲存媒體106的類型,從多個操作模式中選擇一操作模式。例如,控制器140中的模式選擇模組130可存取暫存器144中表示控制器140之可操作的多個模式和子模式的資料。模式選擇模組130從多個模式中選擇一可與儲存媒體106相容的操作模式。
在步驟406中,根據一預設操作標準,從多個子模式中選擇一操作子模式。在一實施例中,所選的操作模式可能包括多個子模式。在這種情況下,根據預設操作標準(例如,資料傳輸率標準或優先權標準),模式選擇模組130還可從相應的多個子模式中選擇出一操作子模式。
在步驟408中,控制器140可被致能在操作模式和/或子模式。模式選擇模組130可配置暫存器144以設定控制器140之操作模式和/或子模式。在一實施例中,模式選擇模組130可將表示所選的操作模式和/或子模式的資料寫入暫存器144,以設定控制器140操作在所選的操作模式和/或子模式。
在步驟410中,控制器140可根據所選的操作模式的傳輸速率和讀出/寫入時序週期,在儲存媒體106和主機102之間傳輸資料。根據暫存器144中表示所選的操作模式和/或子模式的資料,多工器152可致能核心模組160中的一核心。因此,根據所選的操作模式的傳輸速率和讀出/寫入時序週期,被致能的核心可與儲存媒體106通訊,以與儲存媒體106交換資料。
圖5所示為根據本發明一實施例資料傳輸系統500的另一示意圖。圖5將結合圖1進行描述。圖5中與圖1具有相同元件符號之元件具有相同的功能。
在圖5所示之實施例中,資料傳輸系統500包括主機102、介面120、控制器540、通用卡插槽526和儲存媒體106。在一實施例中,儲存媒體106包括16位元PC卡或CF卡,但不以此為限。CF卡包括CF+卡或CF4卡,但不以此為限。16位元PC卡和CF卡都支援16位元之資料傳輸。主機102透過介面120、控制器540和通用卡插槽526從儲存媒體106讀取資料資訊和/或向儲存媒體106寫入資料資訊。
在一實施例中,主機102包括一匯流排562、一處理器564、一主機介面566以及一記憶體568。記憶體568可為隨機儲存記憶體(RAM)、唯讀記憶體(ROM)、電子式可抹除唯讀記憶體(EEPROM)或快閃記憶體。記憶體568可儲存資料和電腦可執行程式指令。處理器564可為一中央處理器、一微處理器或其他可讀取及執行程式指令的設備,但並不以此為限。
在一實施例中,作業系統(例如:MICROSOFTWINDOWS)被安裝至主機102的記憶體568中。作業系統提供具有服務組順序(service-group-order)檔案的註冊表。服務組順序檔按一預設順序列出多個服務組。當主機102被啟動時,處理器564根據預設順序載入相對應程式。為執行特定程式,處理器564呼叫相關的程式指令,並發送相應的控制命令給相關的硬體元件,以執行這些指令。處理器564還可發送指令以控制設備(例如,控制器540和儲存媒體106)耦接至主機。
主機介面566可為一串列介面、一平行介面或其他類型的介面,用於接收以及發送攜帶數位資料串的電子信號、電磁信號或光信號。例如,主機介面566與控制器540互動,以傳送資料資訊和控制資訊。主機102的硬體元件(例如,處理器564、主機介面566和記憶體568)間的通信係透過匯流排562建立。主機102可包括其他元件,並不局限於圖5所示之實施例。
介面120係耦接於主機介面566和控制器540之間,作為主機102和控制器540之間的輸入輸出互連。控制器540於主機102和儲存媒體106之間傳遞資料資訊。在一實施例中,通用卡插槽526可與不同類型的儲存媒體互動。例如,通用卡插槽526可為68接腳雙排介面,因此,16位元PC卡和CF卡均可插入通用卡插槽526。
與圖1中所示之控制器140類似,控制器540可工作在多種工作模式,以控制主機102和控制器540之間的資料傳輸。不同的工作模式具有不同的資料讀/寫時序週期。在一實施例中,由於16位元PC卡和CF卡均支援True IDE標準的讀/寫時序,因此控制器540可工作在True IDE模式下的多個子模式。因此,控制器540的工作模式可包括可編程輸入輸出(PIO)模式和直接記憶體存取(DMA)模式。在一實施例中,16位元PC卡和CF卡均可工作在PIO標準下的讀/寫時序,然而僅有CF卡可工作在DMA標準下的讀/寫時序。在此實施例中,PIO模式與16位元PC卡和CF卡均相容,而DMA模式僅與CF卡相容。
記憶體568可儲存多個電腦可執行驅動器,用於驅動控制器540。更具體地說,處理器564可執行驅動器,以產生控制命令,例如:初始化命令。在傳送資料資訊之前,初始化命令致能主機102和控制器540之間的握手。此外,初始化命令可定義資料傳輸的特性,例如,資料是寫入至儲存媒體106或從儲存媒體106中讀出。初始化命令還可表示資料傳輸的狀態,例如,資料傳輸的啟動或初始化。由此,控制器540可根據初始化命令傳送資料資訊。
不同的驅動器與不同的工作模式有關。換言之,控制器540可基於來自多個驅動器的控制命令工作在不同的工作模式下,以傳遞資料資訊。在一實施例中,驅動器包括一通用驅動器552和一專用驅動器554。通用驅動器552與PIO模式相關,並且和能夠插入至通用卡插槽526的多種類型的儲存媒體(例如:16位元PC卡和CF卡)相容。專用驅動器554與DMA模式相關,並且和部分類型的儲存媒體相容,例如,專用驅動器554僅與CF卡相容。
在一實施例中,通用驅動器552係由主機102的作業系統提供,且通用驅動器552具有作業系統的註冊表中的一通用卡驅動器組。基於來自通用驅動器552的控制命令,資料傳輸系統500在PIO模式下傳送資料資訊。更具體地說,處理器564在PIO模式下執行通用驅動器552,以初始化資料傳輸,並控制整個資料傳輸的過程。例如,在寫入操作中,處理器564將資料資訊從記憶體568傳送至處理器564的一內部快取。待存入一預設長度的資料(例如,512位元組的資料)至內部快取後,處理器564將資料資訊從內部快取透過控制器540傳送到儲存媒體106。同理,在讀取操作中,處理器564將資料資訊從儲存媒體106透過控制器540讀取到處理器564的內部快取。待傳遞了預設長度的資料(例如,512位元組的資料)後,處理器564將資料資訊從內部快取存入至記憶體568。因此,在PIO模式中,每當傳送了預設長度的資料時,會出現一次中斷。
專用驅動器554可設置在主機102中之記憶體568中。一旦設置了專用驅動器554,專用驅動器554可則將專用卡驅動器組(dedicated-card-driver)存入服務組順序檔案。基於來自專用驅動器554的控制命令,資料傳輸系統500可以在DMA模式下傳送資料資訊。更具體地說,控制器540可在DMA模式下控制整個資料傳輸的過程。舉例說明,在DMA模式(例如:MDMA模式或UDMA模式)中,處理器564執行專用驅動器554,以初始化一個讀出或寫入資料操作。然後,處理器564把一匯流排控制權交給控制器540,並根據專用驅動器554的指令碼從資料傳輸的操作中釋放出來。因此,控制器540開始在記憶體568和儲存媒體106之間傳遞資料資訊,而不佔用處理器時間。在這個實施例中,所有的資料資訊可一次性地傳送完畢,而沒有任何中斷。因此,DMA模式較PIO模式具有較高的資料傳輸率。此外,處理器564可更有效的執行其他操作,例如:運算操作。
儲存在記憶體568中的驅動器能夠致能控制器540選擇一對應的工作模式。在一實施例中,當資料傳輸系統500啟動時,控制器540透過預設選擇專用驅動器554。專用驅動器554可識別儲存媒體106,並根據儲存媒體106的類型決定DMA模式是否與儲存媒體106相容。基於此決定,控制器540選擇一相應的驅動器,並工作在相應的工作模式下傳輸資料資訊。
更具體地說,當儲存媒體106被插入通用卡插槽526時,控制器540提供一相應的卡插入信號至專用驅動器554。為回應卡插入信號,專用驅動器554讀取儲存媒體106中的識別資訊(例如,卡識別結構(CIS)),並識別儲存媒體106的類型。例如,判斷儲存媒體106是16位元PC卡還是CF卡。因此,在一實施例中,專用驅動器554可根據識別出的類型判斷DMA模式是否與儲存媒體106相容。如果儲存媒體106是不支援DMA模式之16位元PC卡,專用驅動器554產生一選擇通用驅動器命令。為回應選擇通用驅動器命令,控制器540選擇通用驅動器552,並相應地在PIO模式下傳輸資料資訊。如果儲存媒體106是支援DMA模式的CF卡,專用驅動器554則致能控制器540在DMA模式下傳輸資料資訊。
如果主機102啟動且專用驅動器554尚未被載入,則無論儲存媒體106為16位元PC卡或CF卡,通用驅動器552會開始驅動控制器540。有利之處在於,可由處理器564執行專用驅動器554,以將專用卡驅動器組新增至服務組順序檔案中之通用卡驅動器組之前。因此,處理器564可在載入通用驅動器552之前載入專用驅動器554。
因此,透過從通用驅動器552(與多種類型的儲存媒體106均相容)和專用驅動器554(僅與部分類型的儲存媒體106相容)中選擇一種驅動器,資料傳輸系統500可與共用相同通用卡插槽526的不同類型的儲存媒體106交換資料。有利之處在於,如果儲存媒體106之類型為僅能與專用驅動器554相容之部分類型,則所選的驅動器包括專用驅動器554,否則,所選的驅動器包括通用驅動器552。例如,如果儲存媒體106為支援PIO模式的16位元PC卡,則選擇通用驅動器552,以致能PIO模式下之傳輸資料。如果儲存媒體106為同時支援PIO模式以及DMA模式的CF卡,則選擇專用驅動器554,以致能DMA模式下之傳輸資料。由於DMA模式之資料傳輸率較PIO模式為快,且佔用較少的處理器時間,因此資料傳輸系統500的效率得以改善。
圖6所示為根據本發明一實施例控制器540和介面120的結構示意圖。圖6中與圖1和圖5具有相同元件符號之元件具有相同的功能。圖6將結合圖5進行描述。
介面120係耦接至主機介面566,用於連接控制器540連接至主機102。在圖6所示之實施例中,控制器540包括多個核心(例如,通用核心610和專用核心620)、多工器630和邏輯模組640。
通用核心610和專用核心620用於建立多個介於驅動器和儲存媒體106之間的通信。通用核心610可建立通用驅動器552和儲存媒體106之間的通信。專用核心620可建立專用驅動器554和儲存媒體106之間的通信。多工器630用於從多個核心中選擇一個。因為不同的核心可與不同的驅動器通信,多工器630可透過選擇對應的核心選擇驅動器。
在一實施例中,邏輯模組640包括一控制信號處理器642、一卡感應器644和一狀態信號產生器646。多個核心根據來自主機102的控制資訊傳送控制信號至邏輯模組640。控制信號處理器642分析控制信號,並相應地讀取或寫入相應的資料資訊。卡感應器644感應儲存媒體106的狀態。例如,卡感應器644監測儲存媒體106是否插入至通用卡插槽526或是否從通用卡插槽526移除。狀態信號產生器646基於控制信號處理器642的分析操作和卡感應器644的感應操作產生表示儲存媒體106的狀態的多個狀態信號。例如,當卡感應器644感應到儲存媒體106插入通用卡插槽526時,狀態信號產生器646產生一卡插入信號。此外,當控制信號處理器642接收到選擇通用驅動器命令,狀態信號產生器646則產生另一卡插入信號。控制器540可具有其他的結構,並不局限於圖6所示之實施例。
在一實施例中,通用核心610包括一暫存器612、一資料緩衝器614和一通用控制模組616。資料緩衝器614用於緩衝資料資訊。暫存器612用於儲存來自通用驅動器552的控制資訊以及來自儲存媒體106的狀態資訊。通用控制模組616耦接至暫存器612和資料緩衝器614,具有PIO控制器的功能。更具體地說,通用控制模組616可監測儲存在暫存器612的控制資訊,並可產生相應的控制信號以控制資料傳輸。例如,通用控制模組616可發送一相應的讀取信號給儲存媒體106,以回應從通用驅動器552發送至暫存器612之讀取命令。控制信號處理器642分析讀信號,並從儲存媒體106中讀取資料資訊至資料緩衝器614。此外,透過存取資料緩衝器614,處理器564可接收資料資訊。
此外,通用控制模組616也監測從儲存媒體106傳送至暫存器612的狀態資訊,並產生一相應的狀態指令。處理器564根據狀態指令執行通用驅動器552,以決定資料傳輸的後續步驟。例如,在寫入操作中,當卡感應器644檢測到儲存媒體106的儲存空間已被完全占滿時,狀態信號產生器646可產生一空間已滿信號至暫存器612。相應地,通用控制模組616可產生一空間已滿命令,以向通用驅動器552通報儲存媒體106已無法接收更多的資料資訊。為回應空間已滿命令,通用驅動器552產生一終止命令,以停止資料傳輸。
在一實施例中,專用核心620包括一暫存器622、一資料緩衝器624和專用控制模組626。專用核心620中的暫存器622和資料緩衝器624與通用核心610中的暫存器612和資料緩衝器614具有同樣的功能。專用控制模組626耦接至暫存器622和資料緩衝器624且具有DMA控制器的功能。例如,待處理器564執行專用驅動器554以產生一初始命令後,專用驅動器554可致能專用控制模組626存取匯流排562和記憶體568。在寫入操作中,專用控制模組626從記憶體568中讀取資料資訊至資料緩衝器624,並將來自資料緩衝器624之資料資訊傳送至儲存媒體106。在讀取操作中,專用控制模組626從儲存媒體106中讀取資料資訊至資料緩衝器624,並從資料緩衝器624傳送資料資訊至記憶體568。此外,專用控制模組626可監測暫存器622的狀態資訊,並決定資料傳輸的後續步驟。例如,當暫存器622接收到空間已滿信號,專用控制模組626可直接中止資料傳輸,而不需產生任何狀態指令。
在一實施例中,暫存器622還儲存一組包含核心選擇資料、驅動器有效資料和請求驅動器控制資料的資料集。或者,該資料集可儲存在其他耦接至多工器630的儲存媒體,例如:通用核心610的暫存器612或設於通用核心610和專用核心620外的儲存媒體。在一實施例中,所有核心選擇資料、驅動器有效資料和請求驅動器控制資料均為具有兩個值(例如,邏輯1或邏輯0)的1位元資料。多工器630根據儲存在暫存器622的資料集選擇一核心。更具體地說,專用控制模組626可監測儲存在暫存器622的資料集,並可產生一核心選擇信號632。因此,多工器630可從多個核心中選擇一對應的核心與相應的驅動器通信。因此,一相應的驅動器被選擇,且控制器540根據所選驅動器工作在對應的工作模式下,以傳輸資料資訊。
核心選擇資料表示專用驅動器554和儲存媒體106的類型之間的相容性。在一實施例中,當儲存媒體106被移除時,專用控制模組626可設定核心選擇資料為一預設值(例如:邏輯1),以表示專用驅動器554之預設選擇。因此,當儲存媒體106下一次插入通用卡插槽526時,多工器630根據核心選擇資料的預設值選擇專用驅動器554。因此,處理器564執行專用驅動器554以識別儲存媒體106,並相應地決定專用驅動器554和儲存媒體106的類型是否相容。
如圖5所述,專用驅動器554決定與專用驅動器554相關的DMA模式是否與儲存媒體106的類型相容。如果DMA模式與儲存媒體106相容,則核心選擇資料為設定為一第一值(例如:邏輯1)。基於核心選擇資料之第一值,多工器630選擇專用驅動器554。如果DMA模式與儲存媒體106不相容,則專用驅動器554產生選擇通用驅動器命令。為回應選擇通用驅動器命令,專用控制模組626設定核心選擇資料為一第二值(例如:邏輯0)。基於核心選擇資料的第二值,多工器630選擇通用核心610以與通用驅動器552通信。因此,通用驅動器552被選擇,以致能控制器540工作在PIO模式。
在一實施例中,專用驅動器554可能被使用者移除或或無效。此時,需要多工器630選擇通用驅動器552和通用核心610。驅動器有效資料表示專用驅動器554的可用性。例如,當專用驅動器554被安裝到主機102時,專用控制模組626設定驅動器有效資料為一第一值(例如:邏輯1),以表示專用驅動器554為可用。當專用驅動器554從主機102上移除或被無效時,專用控制模組626設定驅動器有效資料為一第二值(例如:邏輯0),以表示專用驅動器554失效。
多工器630可根據驅動器有效資料選擇驅動器。如果驅動器有效資料表示專用驅動器554可用,則多工器630如前述根據核心選擇資料選擇一核心。有利之處在於,如果驅動器有效資料表示專用驅動器554不可用,則無論核心選擇資料是邏輯1還是邏輯0,多工器630將自動地選擇通用驅動器552。因此,可避免由於專用驅動器554的缺失造成資料傳輸系統500的停止現象,提高了資料傳輸系統500的穩定性。
在一實施例中,當通用驅動器552和通用核心610正在傳輸資料資訊時,使用者可能正在安裝或有效專用驅動器554。此時,專用驅動器554不需要執行資料傳輸。請求驅動器控制資料表示資料傳輸是由通用驅動器552和通用核心610所建立的或是由專用驅動器554和專用核心620所建立的。
在一實施例中,專用控制模組626可根據核心選擇資料和驅動器有效資料決定請求驅動器控制資料的值。更具體地說,當卡感應器644發現儲存媒體106已插入,或控制信號處理器642接收到選擇通用驅動器命令,狀態信號產生器646產生卡插入信號。為回應卡插入信號,專用控制模組626對核心選擇資料和驅動器有效資料執行邏輯及閘(AND)運算,並相應地決定請求驅動器控制資料的值。例如,如果核心選擇資料為邏輯0(例如,表示專用驅動器554與儲存媒體106不相容)或驅動器有效資料為邏輯0(表示專用驅動器554不可用),專用控制模組626設定請求驅動器控制資料為第一值(例如,邏輯0),表示通用驅動器552和通用核心610正在傳輸資料。否則,請求驅動器控制資料被設定為第二值(例如,邏輯1),表示專用驅動器554和專用核心620正在傳輸資料。
有利之處在於,儘管當專用驅動器554被使用者安裝或設定為有效時,驅動器有效資料會被設定為邏輯1,多工器630和專用驅動器554會檢查請求驅動器控制資料。如果請求驅動器控制資料表示通用驅動器552和通用核心610正在傳輸資料資訊,則專用驅動器554停止工作。此外,多工器630根據請求驅動器控制資料選擇通用驅動器552和通用核心610,而不判斷核心選擇資料和驅動器有效資料的值。因此,可避免由於專用驅動器554和通用驅動器552之間的矛盾所引起之資料傳輸系統500的停止現象,進而提高了資料傳輸系統500的穩定性。
總之,基於核心選擇資料、驅動器有效資料和請求驅動器控制資料,通用驅動器552和/或專用驅動器554能在各種情況下被適當地選擇,由此,提高了資料傳輸系統500的穩定性。
圖7所示為根據本發明一實施例當專用驅動器554可用時之資料傳輸系統500的操作流程圖700。圖7將結合圖5和圖6進行描述。在圖7的實施例中,流程圖700描述了DATA0、DATA1和DATA2,其中,DATA0表示核心選擇資料,DATA1表示驅動器有效資料,DATA2表示請求驅動器控制資料。
在步驟702中,資料傳輸系統500被啟動。處理器564根據作業系統所提供之註冊表中的服務組順序檔載入多個程式。在步驟704中,專用驅動器554被使用者安裝,且被設定為有效。因此,DATA1被設定為邏輯1以表示專用驅動器554可用。當儲存媒體106在前次插設後從通用卡插槽526中移除,DATA0被設定為預設值,例如,邏輯1。
在步驟706中,儲存媒體106插入通用卡插槽526。多工器630根據DATA0(核心選擇資料)透過預設選擇專用驅動器554。卡感應器644感應到儲存媒體106的插入,並致能狀態信號產生器646發送一卡插入信號至專用核心620。為回應卡插入信號,專用核心620透過對DATA0和DATA1進行邏輯及閘運算來決定DATA2。因此,DATA2被設定為邏輯1。專用驅動器554根據儲存媒體106的識別資訊識別儲存媒體106的類型,並相應地決定核心選擇資料。
在步驟708中,儲存媒體106可為支援與專用驅動器554相關之DMA模式的CF卡。因此,DATA0(核心選擇資料)仍保持為邏輯1。在步驟710中,多工器630根據DATA0、DATA1和DATA2之值選擇專用驅動器554,以在DMA模式下傳輸資料資訊。在步驟712中,儲存媒體106被移除。DATA0被設定為預設值,例如:DATA0保持為邏輯1。
在步驟714中,儲存媒體106可為不支援DMA模式的16位元PC卡。因此,專用驅動器554產生一選擇通用驅動器命令,以設定DATA0為第二值(例如,邏輯0),並致能邏輯模組640產生其他卡插入信號。在步驟716中,多工器630根據DATA0選擇通用驅動器552。此外,為回應卡插入信號,專用控制模組626透過對DATA0和DATA1進行邏輯及閘運算以決定DATA2。因此,DATA2被設定成邏輯0,以表示通用驅動器552和通用核心610正在傳送資料資訊。在步驟718中,儲存媒體106被移除。DATA0被設定為預設值,例如:邏輯1。
圖8所示為根據本發明一實施例當專用驅動器554失效時之資料傳輸系統500的操作流程圖800。圖8將結合圖5和圖6進行描述。流程圖800描述了DATA0、DATA1和DATA2。DATA0表示核心選擇資料,DATA1表示驅動器有效資料,DATA2表示請求驅動器控制資料。
在步驟802中,資料傳輸系統500被啟動。處理器564根據作業系統所提供之註冊表中的服務組順序檔載入多個程式。在步驟804中,使用者移除或無效專用驅動器554。因此,DATA1被設定為邏輯0,表示專用驅動器554不可用。
在步驟806中,儲存媒體106插入通用卡插槽526。狀態信號產生器646產生一卡插入信號。為回應卡插入信號,專用控制模組626透過對DATA0和DATA1進行邏輯及閘運算來決定DATA2。因此,DATA2被設定為邏輯0,表示資料傳輸是由通用驅動器552和通用核心610建立。在步驟808中,儘管DATA0具有預設值(例如,邏輯1),多工器630根據DATA1選擇通用驅動器552和通用核心610。在步驟814中,儲存媒體106被移除。DATA0保持為預設值(例如,邏輯1)。
在步驟810中,專用驅動器554被安裝。DATA1被設定為邏輯1,表示專用驅動器554變為可用。基於DATA2,多工器630繼續選擇通用驅動器552。此外,專用驅動器554停止運行。在步驟812中,儲存媒體106被移除。DATA0被設定為預設值(例如,邏輯1)。資料傳輸系統500可具有其他的操作,並不局限於圖7和圖8所示之實施例。
圖9所示為根據本發明一實施例資料傳輸系統500的操作方法流程圖900。圖9將結合圖5至圖8進行描述。圖9所涵蓋的具體步驟僅僅作為示例。也就是說,本發明亦適用於其他合理的流程或對圖9進行改進的步驟。
在步驟902中,一電腦可執行通用驅動器(例如,通用驅動器552)被載入。通用驅動器係與第一工作模式(例如,PIO模式)相關,且與多種類型的儲存媒體(例如,16位元PC卡和CF卡)相容。一插槽(例如,通用卡插槽526)能夠與多種類型的儲存媒體互動。
在步驟904中,一電腦可執行專用驅動器(例如,專用驅動器554)被載入。專用驅動器與第二工作模式(例如,DMA模式)相關,且僅僅與部分類型的儲存媒體(例如,CF卡)相容。在一實施例中,專用驅動器係在載入通用驅動器之前即被載入。
在步驟906中,當一儲存媒體(例如,儲存媒體106)被插入插槽時,選擇一種驅動器。如果儲存媒體之類型為僅與DMA模式相容之部分類型,則所選的驅動器包括專用驅動器,否則,所選的驅動器包括通用驅動器。在一實施例中,表示專用驅動器是否與儲存媒體相容之核心選擇資料被存取,且根據核心選擇資料選擇驅動器。核心選擇資料被設定為一預設值,並當儲存媒體插入插槽時,根據預設值選擇專用驅動器。然後,基於包含在儲存媒體中的識別資訊識別儲存媒體的類型,並根據該類型決定核心選擇資料的值。此外,表示專用驅動器之可用性的驅動器有效資料被存取,並根據驅動器有效資料選擇驅動器。表示通用驅動器是否正在傳輸資料資訊的請求驅動器控制資料被存取,且根據請求驅動器控制資料選擇驅動器。
在步驟908中,根據相應的工作模式,與儲存媒體交換資料資訊。
上文具體實施方式和附圖僅為本發明之常用實施例。顯然,在不脫離權利要求書所界定的本發明精神和發明範圍的前提下可以有各種增補、修改和替換。本領域技術人員應該理解,本發明在實際應用中可根據具體的環境和工作要求在不背離發明準則的前提下在形式、結構、佈局、比例、材料、元素、元件及其它方面有所變化。因此,在此披露之實施例僅用於說明而非限制,本發明之範圍由後附權利要求及其合法等同物界定,而不限於此前之描述。
100...資料傳輸系統
102...主機
106...儲存媒體
120...介面
130...模式選擇模組
140...控制器
142...資料緩衝器
144...暫存器
152...多工器
160...核心模組
174...資料路徑
176...控制路徑
200...資料傳輸系統
220...PCIe介面
222...PCIe實體層
224...PCIe核心
234...微控制器單元
236...韌體
246...PCMCIA核心
248...True IDE核心
336...驅動器
400...流程
402~410...步驟
500...資料傳輸系統
526...通用卡插槽
540...控制器
552...通用驅動器
554...專用驅動器
562...匯流排
564...處理器
566...主機介面
568...記憶體
610...通用核心
612...暫存器
614...資料緩衝器
616...通用控制模組
620...專用核心
622...暫存器
624...資料緩衝器
626...通用控制模組
630...多工器
632...核心選擇信號
640...邏輯模組
642...控制信號處理器
644...卡感應器
646...狀態信號產生器
700...流程圖
702~718...步驟
800...流程圖
802~814...步驟
900...流程圖
902~908...步驟
以下結合附圖和具體實施例對本發明的技術方法進行詳細的描述,以使本發明的特徵和優點更為明顯。其中:
圖1所示為根據本發明一實施例資料傳輸系統示意圖。
圖2所示為根據本發明一實施例資料傳輸系統示意圖。
圖3所示為根據本發明一實施例資料傳輸系統示意圖。
圖4所示為根據本發明一實施例控制資料傳輸的方法流程。
圖5所示為根據本發明一實施例資料傳輸系統的另一示意圖。
圖6所示為根據本發明一實施例控制器和介面的結構示意圖。
圖7所示為根據本發明一實施例之當專用驅動器可用時之資料傳輸系統的操作流程圖。
圖8所示為根據本發明一實施例當專用驅動器失效時之資料傳輸系統的操作流程圖。
圖9所示為根據本發明一實施例資料傳輸系統的操作方法流程圖。
500...資料傳輸系統
526...通用卡插槽
540...控制器
552...通用驅動器
554...專用驅動器
562...匯流排
564...處理器
566...主機介面
568...記憶體
102...主機
120...介面
106...儲存媒體
Claims (17)
- 一種資料傳輸裝置,包括:一插槽,與具有不同類型的一儲存媒體互動;一電腦可讀媒體,儲存與一第一工作模式有關之電腦可執行之一通用驅動器以及與一第二工作模式有關之電腦可執行之一專用驅動器,其中,該通用驅動器與該不同類型的該儲存媒體相容,該專用驅動器僅與部分類型的該儲存媒體相容;以及一控制器,耦接至該插槽和該電腦可讀媒體,當該儲存媒體插入該插槽時,該控制器從該通用驅動器和該專用驅動器中選擇一所選驅動器,並根據該所選驅動器工作在一相應工作模式,以與該儲存媒體交換一資料資訊,其中,如果該儲存媒體之類型與該專用驅動器相容,則該所選驅動器包括該專用驅動器,否則,該所選驅動器包括該通用驅動器,該控制器包括一暫存器,儲存一請求驅動器控制資料,該請求驅動器控制資料具有一第一數值指示選擇該通用驅動器以及一第二數值指示選擇該專用驅動器,其中,當該專用驅動器不可用時,該控制器選擇該通用驅動器在該第一工作模式傳輸該資料資訊並設置該請求驅動器控制資料為該第一數值,當該專用驅動器變為可用時,該控制器繼續選擇該通用驅動器若該請求驅動器控制資料為該第一數值。
- 如申請專利範圍第1項的資料傳輸裝置,其中,該第一工作模式包括一可編程輸入/輸出(PIO)模式,該 第二工作模式包括一直接記憶體存取(DMA)模式。
- 如申請專利範圍第1項的資料傳輸裝置,其中,該控制器包括:一通用核心,建立該儲存媒體和該通用驅動器之間的通信;一專用核心,建立該儲存媒體和該專用驅動器之間的通信;以及一多工器,耦接至該通用核心和該專用核心,透過從至少該通用核心和該專用核心之間選擇一相對應核心,進而選擇該所選驅動器。
- 如申請專利範圍第1項的資料傳輸裝置,其中,該暫存器包括:一核心選擇資料,指示該專用驅動器是否與該儲存媒體相容;以及一驅動器有效資料,指示該專用驅動器是否可用,其中,該控制器根據該核心選擇資料、該驅動器有效資料以及該請求驅動器控制資料選擇該所選驅動器。
- 如申請專利範圍第4項的資料傳輸裝置,其中,當該儲存媒體插入該插槽時,該核心選擇資料具有一預設值,該多工器根據該預設值透過預設選擇該專用驅動器。
- 如申請專利範圍第5項的資料傳輸裝置,其中,該專用驅動器基於包含在該儲存媒體中的一識別資訊識別該儲存媒體的一類型,並根據該類型決定該核心選擇資料的值。
- 如申請專利範圍第4項的資料傳輸裝置,其中,根據該核心選擇資料和該驅動器有效資料計算該請求驅動器控制資料。
- 一種資料傳輸方法,包括:載入與一第一工作模式相關的電腦可執行之一通用驅動器,該通用驅動器與不同類型的一儲存媒體相容,其中,一插槽與該儲存媒體互動;載入與一第二工作模式相關的電腦可執行之一專用驅動器,該專用驅動器僅與部分類型的該儲存媒體相容;當該儲存媒體插入該插槽時,從該通用驅動器和該專用驅動器之間選擇一所選驅動器;根據該所選驅動器工作在一相應工作模式,與該儲存媒體交換一資料資訊,如果該儲存媒體之類型與該專用驅動器相容,該所選驅動器包括該專用驅動器,否則,該所選驅動器包括該通用驅動器;當該專用驅動器不可用時,選擇該通用驅動器在該第一工作模式傳輸該資料資訊;設置一請求驅動器控制資料為一第一數值,指示選擇該通用驅動器;當該專用驅動器變為可用時,檢查該請求驅動器控制資料;以及繼續選擇該通用驅動器若該請求驅動器控制資料為該第一數值。
- 如申請專利範圍第8項的方法,其中,根據該所選驅動器工作在該相應工作模式之步驟包括:存取指示該專用驅動器是否與該儲存媒體相容之一核心選擇資料;存取指示該專用驅動器是否可用之一驅動器有效資料;以及根據該核心選擇資料、該驅動器有效資料以及該請求驅動器控制資料選擇該所選驅動器。
- 如申請專利範圍第9項的方法,其中,根據該所選驅動器工作在該相應工作模式之步驟進一步包括:設定該核心選擇資料為一預設值;以及當該儲存媒體插入該插槽時,根據該預設值透過預設選擇該專用驅動器。
- 如申請專利範圍第10項的方法,進一步包括:基於包含在該儲存媒體中的一識別資訊識別該儲存媒體的一類型;以及根據該類型決定該核心選擇資料。
- 如申請專利範圍第9項的方法,其中,根據該核心選擇資料和該驅動器有效資料計算該請求驅動器控制資料。
- 一種控制器,該控制器耦接至一插槽,傳輸一主機和該插槽之間的一資料資訊,其中,該插槽能夠與不同型類的一儲存媒體互動,該控制器包括:一通用核心,根據來自電腦可執行之一通用驅動器的一控制指令工作於一第一工作模式,以傳輸該資料資 訊,該第一工作模式與該不同型類的該儲存媒體相容;一專用核心,根據來自電腦可執行之一專用驅動器的一控制指令工作於一第二工作模式,以傳輸該資料資訊,該第二工作模式僅與該部分類型的該儲存媒體相容;一多工器,耦接至該通用核心和該專用核心,從該通用核心和該專用核心之間選擇一所選核心,以傳輸該資料資訊,如果該儲存媒體之類型為僅與該第二工作模式相容之部分類型,則該所選核心包括該專用核心,否則,該所選核心包括該通用核心;以及一暫存器,儲存一資料集,其中,該多工器根據該資料集選擇該所選核心,且其中,該資料集包括一請求驅動器控制資料,該請求驅動器控制資料具有一第一數值指示選擇該通用核心以及一第二數值指示選擇該專用核心,其中,當該專用驅動器不可用時,該多工器選擇該通用核心在該第一工作模式傳輸該資料資訊並設置該請求驅動器控制資料為該第一數值,當該專用驅動器變為可用時,該多工器根據該請求驅動器控制資料繼續選擇該通用核心。
- 如申請專利範圍第13項的控制器,其中,該資料集包括指示該專用驅動器是否與該儲存媒體相容的一核心選擇資料,還包括指示該專用驅動器是否可用之一驅動器有效資料,其中,根據該核心選擇資料和該驅動器有效資料計算該請求驅動器控制資料。
- 如申請專利範圍第14項的控制器,其中,當該儲存媒體插入該插槽時,該核心選擇資料具有一預設值,以致能該多工器透過預設選擇該專用核心,其中,該專用驅動器識別該儲存媒體的一類型,並根據該類型決定該核心選擇資料。
- 如申請專利範圍第14項的控制器,其中,如果該請求驅動器控制資料為該第二數值,則該多工器根據該核心選擇資料選擇該所選核心。
- 如申請專利範圍第14項的控制器,其中,如果該請求驅動器控制資料為該第一數值,該多工器不考慮該核心選擇資料和該驅動器有效資料而選擇該通用核心。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/565,874 US20110072168A1 (en) | 2009-09-24 | 2009-09-24 | Data transfer system with different operating modes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201112131A TW201112131A (en) | 2011-04-01 |
TWI416418B true TWI416418B (zh) | 2013-11-21 |
Family
ID=43757584
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099113440A TW201112130A (en) | 2009-09-24 | 2010-04-28 | Controllers and methods for controlling data transfer, and electronic systems |
TW099115221A TWI416418B (zh) | 2009-09-24 | 2010-05-13 | 資料傳輸控制器、裝置及其方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099113440A TW201112130A (en) | 2009-09-24 | 2010-04-28 | Controllers and methods for controlling data transfer, and electronic systems |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110072168A1 (zh) |
TW (2) | TW201112130A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8443126B2 (en) * | 2010-09-22 | 2013-05-14 | Wilocity, Ltd. | Hot plug process in a distributed interconnect bus |
US9244872B2 (en) * | 2012-12-21 | 2016-01-26 | Ati Technologies Ulc | Configurable communications controller |
TWI612426B (zh) * | 2016-11-09 | 2018-01-21 | 瑞昱半導體股份有限公司 | 應用於一電子裝置的記憶卡讀取方法以及記憶卡讀取系統 |
CN109656854A (zh) | 2017-10-12 | 2019-04-19 | 光宝科技股份有限公司 | 固态储存装置的重置电路及其重置方法 |
TWI655546B (zh) * | 2017-10-12 | 2019-04-01 | 光寶科技股份有限公司 | 固態儲存裝置的重置電路及其重置方法 |
TWI717884B (zh) * | 2019-10-31 | 2021-02-01 | 創惟科技股份有限公司 | 記憶卡的讀寫控制系統及其方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049627A1 (en) * | 2001-11-09 | 2004-03-11 | Flex-P Industries | Method and system for controlling compact flash memory |
US20050065747A1 (en) * | 2003-09-08 | 2005-03-24 | Amit Premy | Mixed-signal core design for concurrent testing of mixed-signal, analog, and digital components |
US20070260838A1 (en) * | 2006-05-01 | 2007-11-08 | Analog Devices, Inc. | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
US20090003569A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Virtual contact identifier |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812858A (en) * | 1994-09-16 | 1998-09-22 | Cirrus Logic, Inc. | Method and apparatus for providing register and interrupt compatibility between non-identical integrated circuits |
US6470284B1 (en) * | 1999-08-05 | 2002-10-22 | 02 Micro International Limited | Integrated PC card host controller for the detection and operation of a plurality of expansion cards |
US7136950B2 (en) * | 2001-10-02 | 2006-11-14 | Texas Instruments Incorporated | Multifunction passive adaptor for flash media cards |
JP3882920B2 (ja) * | 2003-05-30 | 2007-02-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ装置、カード媒体制御方法、およびプログラム |
EP1798642B1 (en) * | 2005-12-19 | 2009-06-17 | Seiko Epson Corporation | Information processing device |
JP4724573B2 (ja) * | 2006-03-02 | 2011-07-13 | 株式会社リコー | インタフェース回路における転送方式切換回路 |
JP2009163557A (ja) * | 2008-01-08 | 2009-07-23 | Seiko Epson Corp | 情報処理装置 |
-
2009
- 2009-09-24 US US12/565,874 patent/US20110072168A1/en not_active Abandoned
-
2010
- 2010-04-28 TW TW099113440A patent/TW201112130A/zh unknown
- 2010-05-13 TW TW099115221A patent/TWI416418B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049627A1 (en) * | 2001-11-09 | 2004-03-11 | Flex-P Industries | Method and system for controlling compact flash memory |
US20050065747A1 (en) * | 2003-09-08 | 2005-03-24 | Amit Premy | Mixed-signal core design for concurrent testing of mixed-signal, analog, and digital components |
US20070260838A1 (en) * | 2006-05-01 | 2007-11-08 | Analog Devices, Inc. | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
US20090003569A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Virtual contact identifier |
Also Published As
Publication number | Publication date |
---|---|
TW201112130A (en) | 2011-04-01 |
TW201112131A (en) | 2011-04-01 |
US20110072168A1 (en) | 2011-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423169B (zh) | 用于测试高速外围设备互连设备的方法和系统 | |
JP5065297B2 (ja) | Mmc/sdデバイスからホストデバイスをブートする方法,mmc/sdデバイスからブート可能なホストデバイス及びホストデバイスをブートできるmmc/sdデバイス | |
TWI416418B (zh) | 資料傳輸控制器、裝置及其方法 | |
JP4869065B2 (ja) | 仮想周辺コンポーネントインターコネクト多重ファンクション装置 | |
US9747237B2 (en) | Methods and apparatus for reliable detection and enumeration of devices | |
TWI375890B (en) | Electronic system, usb link, ulpi phy and method for transmitting an extended transaction | |
WO2023143504A1 (zh) | 计算系统、pci设备管理器及其初始化方法 | |
US20050240713A1 (en) | Flash memory device with ATA/ATAPI/SCSI or proprietary programming interface on PCI express | |
WO2012034524A1 (zh) | Usb设备识别主机windows操作系统版本类型的方法 | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
TW200305808A (en) | ATA/SATA combined controller | |
JP2004070571A (ja) | データ転送制御システム、電子機器、プログラム及びデータ転送制御方法 | |
CN113424147A (zh) | 用于流式传输存储设备内容的系统和方法 | |
US8527667B2 (en) | Apparatuses and methods for transferring data | |
JP2008502976A (ja) | 分割トランザクションを処理するためのバス・コントローラ | |
TW201229908A (en) | Method and apparatus for integrating driver(s) of a portable device into the portable device | |
CN105302763A (zh) | 基于usb3.0协议的只读控制系统及方法 | |
US20080305833A1 (en) | SD switch box in a cellular handset | |
KR20200001208A (ko) | 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 | |
CN114253883B (zh) | 一种endpoint设备访问方法、系统及endpoint设备 | |
JP5896328B2 (ja) | 高性能ahciインターフェイス | |
WO2009115058A1 (zh) | 提供闪存存储功能的主板及其存储方法 | |
US7424580B2 (en) | Data transfer control device, electronic instrument, program and method of fabricating electronic instrument | |
TWI773395B (zh) | 記憶體控制器與連結識別方法 | |
US7934024B2 (en) | Method for reading and writing non-standard register of serial advanced technology attachment (SATA) device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |