簡體   English   中英

SATA控制器有多少個物理通道?

[英]How many physical channels SATA controller has?

想象一個帶有一個SATA控制器的系統。 如果控制器在IDE模式下運行,它將顯示在設備管理器中,如下所示:

Windows XP:

IDE controller's name
Primary IDE Channel
Secondary IDE Channel

Windows> = Vista:

IDE controller's name
ATA Channel 0
ATA Channel 1

如果控制器以AHCI模式運行,則在XP和> = Vista上都將顯示為“ SATA AHCI controller”。

AHCI模式下的SATA控制器最多支持32個設備(32位掩碼表示設備已連接)。 我認為這只是軟件限制,因為每個設備都需要單獨的通道,所以不太可能存在這樣的系統,其中SATA控制器通過所有32個通道“連接”。 但是我認為32是一個數字,表示控制器可以處理兩個以上的設備,因此具有兩個以上的通道。 因此,我想問一下SATA控制器實際上經常有多少個通道。 ATA控制器具有兩個通道,這是否意味着SATA控制器具有相同數量的通道以實現IDE模式下的軟件兼容性? 也許它有兩個以上的通道,但是在IDE模式下,只有前兩個通道可用? (至少在XP上,因為“主要”通道和“次要”通道大大降低了“第三”通道的可能性,而“ 0”通道,“ 1”通道,“ 2”通道等則不然)

稍后,但可能對其他人有用。

讓我們添加一些說明。 有帶有AHCI接口(高級主機控制器接口)的SATA主機控制器。 並且有SATA驅動器(或帶有AHCI接口的任何其他設備)。

SATA主機控制器(HC)具有許多端口。 理論上最多可以有32個SATA端口,但不能少於1個(沒有任何端口HC本身是沒有意義的)。 實際端口的數量取決於實現方式。 PC中使用的普通HC芯片更可能具有1個或2個端口。 SATA驅動器已連接到端口。 因此,如果SATA HC具有2個端口,則最多可以連接2個SATA驅動器/設備。

在現實生活中,一切都更加有趣。 正如@Ross Ridge在評論中提到的那樣,可以使用端口倍增器。 端口倍增器用於增加可以連接的設備數量。 同樣,端口倍增器是連接到SATA HC 端口 (而不是主機控制器本身)的設備。 一個乘數到一個端口。 第二個乘法器可以連接到其他端口,等等。乘法器的支持由實現定義。 有些HC可以與他們合作,有些則不能。 乘法器有16個端口。 端口“ 0xF”是乘法器的特殊控制端口。 因此最多可以連接15個設備。

因此,以上所有都是關於SATA規范的。 考慮列出的問題本身:

  • 操作系統驅動程序可以通過自己的方式枚舉和命名驅動器。 就像您提到的Secondary IDE ChannelATA Channel 1 名字更可能來自帶有並行接口的驅動器。 實際上,“通道”一詞甚至不在SATA AHCI規范中。 有端口:)

  • 某些驅動程序可能暗示“軟件限制”,例如不支持乘法器或僅使用一個端口。 定期更新驅動程序。

  • thus providing Windows with a way to change such options like enable/disable DMA mode Windows DMA模式與SATA驅動器無關。 SATA主機控制器使用特殊的緩沖區分配從驅動器接收的數據。 在這種情況DMA modeDMA mode更像OS如何訪問這些緩沖區,而不像HC如何與連接的驅動器通信。

  • Also can you tell me what is the maximum number of ATA Channels that SATA controller can have? 有端口。 端口數量由實現定義。 如果您知道主板上的SATA主機控制器的地址讀取CAP寄存器,則4個低位是Number of Ports - 1 PS:您將需要一個驅動程序來直接訪問物理內存,因此...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM