33、SCSI技术与PC硬件配置全解析

SCSI技术与PC硬件配置全解析

1. SCSI总线基础

SCSI(Small Computer System Interface)总线在计算机存储和设备连接中扮演着重要角色。ATN信号在除仲裁(ARBITRATION)或总线空闲(BUS FREE)阶段外的任何总线状态下都可能出现。而重置(RESET)条件用于立即清除总线上的所有SCSI设备,它对所有其他阶段和条件具有绝对优先级。任何SCSI设备都可以通过断言RST信号来创建重置条件,重置时,所有SCSI设备会释放除RST之外的所有SCSI总线信号,随后进入总线空闲阶段。

2. SCSI总线阶段序列

SCSI总线阶段通常遵循特定的序列模式,典型的阶段序列如下:
1. 总线空闲阶段(BUS FREE phase)
2. 仲裁阶段(ARBITRATION phase)
3. 选择或重新选择阶段(SELECTION or RESELECTION phase)
4. 消息输出阶段(MESSAGE OUT phase)
5. 一个或多个信息传输阶段(COMMAND、DATA、STATUS或MESSAGE)
6. 消息输入阶段(MESSAGE IN phase),传输断开或命令完成消息,然后进入下一阶段
7. 总线空闲阶段(BUS FREE phase)

重置条件可以中止任何阶段,并且总是跟随一个总线空闲阶段。其他阶段之后也可能跟随总线空闲阶段,这种情况通常是由于错误导致,但也是合法的。

以TEST UNIT READY命令为例,其典型阶段序列如下:
1. 总线空闲空闲状态(BUS FREE idle state)
2. 仲裁数据:根据十六进制ID 90(二进制1.0.0.1.0.0.0.0),表示设备7和4希望获取总线
3. 选择数据:根据十六进制ID 81(二进制1.0.0.0.0.0.0.1),表示ID 7和ID 0的设备进行通信
4. 消息输出数据字节:十六进制80,表示识别命令
5. 命令数据字节:十六进制00,表示测试单元就绪命令(该命令有6个字节,均为十六进制00)
6. 状态数据字节:十六进制00,表示良好,即SCSI设备就绪
7. 消息输入数据字节:十六进制00,表示命令完成
8. 总线空闲空闲状态(BUS FREE idle state)

“帧”(从总线空闲到消息输出,以及从状态到总线空闲)在大多数组合中是相同的,但命令阶段的数量会因不同命令而有所变化。

下面是SCSI阶段序列模型的mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    A([Bus Free]):::startend --> B(Arbitration):::process
    B --> C(Selection/Reselection):::process
    C --> D(Message Out):::process
    D --> E(Command/Data/Status/Message):::process
    E --> F(Message In):::process
    F --> G([Bus Free]):::startend
    H(SCSI Reset/Bus Error):::process --> G
3. SCSI总线定时

SCSI总线定时非常复杂,但可以分解为一些基本参数。以下是不同SCSI版本的一些关键定时元素:
| 定时元素 | SCSI - 2 Syn | Fast SCSI (Fast 5) | UltraSCSI (Fast 10) | Ultra2 SCSI (Fast - 20) | Ultra2 SCSI (Fast - 40) | 描述 |
| — | — | — | — | — | — | — |
| 仲裁延迟(Arbitration Delay) | 2.4 µs | 2.4 µs | 2.4 µs | 2.4 µs | 2.4 µs | 当SCSI设备在仲裁阶段断言BSY时,必须等待至少一个仲裁延迟才能确定是否赢得仲裁 |
| 接收/发送断言周期(Assertion Period, Receive/Transmit) | 70 ns/80 ns | 22 ns/30 ns | 11 ns/15 ns | 6.5 ns/8 ns | | REQ/REQB和ACK/ACKB信号必须至少断言一个接收断言周期才能被识别,发送方必须至少断言一个发送断言周期 |
| 总线清除延迟(Bus Clear Delay) | 800 ns | 800 ns | 800 ns | 800 ns | 800 ns | 如果设备检测到总线空闲阶段,有这么多时间来释放所有信号 |
| 总线空闲延迟(Bus Free Delay) | 800 ns | 800 ns | 800 ns | 800 ns | 800 ns | 检测到总线空闲阶段后,设备必须等待一个总线空闲延迟才能开始仲裁过程 |
| 总线设置延迟(Bus Set Delay) | 1.6 µs | 1.6 µs | 1.6 µs | 1.6 µs | 1.6 µs | SCSI设备断言BSY和其ID位进行仲裁的时间不得超过一个总线设置延迟 |
| 总线稳定延迟(Bus Settle Delay) | 400 ns | 400 ns | 400 ns | 400 ns | 400 ns | 阶段更改后,设备在总线稳定延迟期间不应更改信号电平 |
| 电缆偏斜延迟(Cable Skew Delay) | 4 ns (10 ns) | 4 ns (5 ns) | 3 ns | 2.5 ns | | 总线上两个SCSI信号之间的信号传输长度差异不应超过电缆偏斜延迟,当信号受铁氧体磁芯或类似阻尼措施影响时尤为重要 |
| 数据释放延迟(Data Release Delay) | 400 ns | 400 ns | 400 ns | 400 ns | 400 ns | 当I/O状态从真变为假时,发起方必须释放数据线一个数据释放延迟 |
| 系统去偏斜延迟(System Deskew Delay) | 45 ns | 45 ns | 45 ns | 45 ns | 45 ns | 解耦各种信号的时间 |
| 断开延迟(Disconnection Delay) | 200 µs | 200 µs | 200 µs | 200 µs | 200 µs | 当目标被发起方断开连接时,目标必须等待至少一个断开延迟才能尝试新的仲裁 |
| 保持时间,接收/发送(Hold Time, Receive/Transmit) | 25 ns/53 ns | 25 ns/33 ns | 11.5 ns/16.5 ns | 4.75 ns/9.25 ns | | 同步传输期间,数据必须至少断言一个保持时间,以便接收设备从总线读取数据 |
| 否定周期(Negation Period) | 70 ns | 22 ns | 11 ns | 6.5 ns | | 同步传输期间,每个REQ/REQB或ACK/ACKB脉冲之后必须至少跟随一个否定周期 |
| 重置保持时间(Reset Hold Time) | 25 µs | 25 µs | 25 µs | 25 µs | 25 µs | 发出重置之前,RST信号必须至少断言一个重置保持时间 |
| 选择中止时间(Selection Abort Time) | 200 µs | 200 µs | 200 µs | 200 µs | 200 µs | 如果目标在选择中止时间内未通过断言BSY对选择做出反应,发起方将强制执行总线空闲阶段(通过重置条件或释放数据线,然后释放SEL和ATN) |
| 设置时间,接收/发送(Setup Time, Receive/Transmit) | 15 ns/23 ns | 15 ns/23 ns | 6.5 ns/11.5 ns | 4.75 ns/9.25 ns | | |
| 传输周期(Transfer Period) | 200 ns | 100 ns | 50 ns | 25 ns | | 两个REQ/REQB或ACK/ACKB脉冲之间的最小时间,可能的传输周期由相关设备协商确定 |
| 上电到选择时间(Power On to Selection) | 10 s | 10 s | 10 s | 10 s | 10 s | SCSI设备应在通电后这个时间内能够响应SCSI命令,这只是一个建议,但很有意义,因为大多数主机适配器驱动程序将此视为设备响应的最大时间,否则将跳过其ID |
| 重置到选择时间(Reset to Selection) | 250 ms | 250 ms | 250 ms | 250 ms | 250 ms | 重置后,设备在能够响应命令之前允许空闲的建议最大时间 |
| 选择超时延迟(Selection Timeout Delay) | 250 ms | 250 ms | 250 ms | 250 ms | 250 ms | 选择阶段,设备在停止选择之前应至少等待一个选择超时延迟以获取响应,这只是一个建议时间,不是强制值 |

在SCSI - 3草案中,新功能如快速仲裁和双过渡时钟将引入一些新变量,但基本值保持不变。

4. SCSI总线终止

除了布线,终止是SCSI中最关键的部分。终止的基本规则很简单:总线的两端必须用终止电路封闭。然而,终止和与终止相关的问题至少占所有SCSI问题的80%。以下是不同设备连接情况下的终止设置:
- 仅内部设备 :使用一根带有多个连接器的电缆从主机适配器连接到设备。主机适配器和最后一个连接器上的设备必须进行终止。如果最后一个连接器上没有设备,可以移动连接器使最后一个连接器被使用,或者在最后一个连接器上应用终止器。
- 仅外部设备 :一根电缆连接到第一个设备,从该设备的第二个SCSI连接器,第二根电缆连接到下一个设备,依此类推。主机适配器和链中的最后一个设备必须进行终止。在现代主机适配器上,通常通过跳线或通过其SCSI BIOS的软件来完成。设备要么内部终止,要么在其第二个SCSI连接器上连接一个终止器插头。
- 内部和外部设备 :当主机适配器的两个连接器都使用时,同样的规则适用 - 仅终止两端。因此,禁用主机适配器上的终止,并终止最后一个内部和最后一个外部设备。

对于宽SCSI,当混合宽SCSI和“窄”SCSI设备时,基本规则仍然是总线两端终止。例如,如果混合宽SCSI磁盘和窄SCSI CD - ROM,最简单的设置是使整个SCSI总线为16位宽,并使用50针母对68针母适配器将CD - ROM连接到总线中间。在这种配置下,CD - ROM不需要终止,并且使用没有高字节终止的适配器,简单且无故障。

如果将宽SCSI磁盘驱动器连接到窄SCSI总线上,则稍微复杂一些,因为大多数宽SCSI设备需要“看到”正确实现的宽SCSI总线。因此,需要一个终止高字节的适配器,可以是全尺寸的有源终止电路,也可以是一个简单的版本,使用4.7千欧电阻将上字节(-DB(8)到 -DB(15)和 -DB(P1))上拉到TERMPWR。如果适配器没有高字节终止,驱动器可能工作也可能不工作,这取决于驱动器及其能力。

5. 终止电路
  • 被动终止 :SCSI - 1标准发布时,终止的既定标准是每个信号使用被动终止器。被动意味着仅使用被动部件,对于每个信号线,使用两个电阻,一个220欧姆的上拉电阻连接到TERMPWR线,另一个330欧姆的下拉电阻连接到地(0 V)。如果TERMPWR为5 V,这会导致待机信号电平约为3 V。被动终止有一些缺点,它消耗相对较高的电流,并且大多数被动终止器使用5%的电阻阵列,尽管标准规定使用±1%公差的电阻可改善噪声裕度,但5%的电阻阵列更便宜。
  • 主动终止 :SCSI - 2引入了主动终止(也称为Boulay - Terminator)。主动终止在信号质量和电流消耗方面明显优于被动终止,并且对于快速SCSI定时是必需的。它对TERMPWR线上的低电压和噪声更具容忍性,但缺点是比被动终止更复杂和昂贵。官方主动终止规范建议信号线电压为2.85 V,由于良好的低压降调节器输入电压仅需比输出高0.5 V,终止器可以设计为在TERMPWR低至3.5 V时可靠工作。为了安全起见,较新的设备倾向于使用SCSI终止IC,如Dallas Semiconductor DS2107A,它可以在TERMPWR为4.0至5.25 V时安全运行。
  • 强制完美终止(FPT) :强制完美终止是主动终止的一种变体,它使用二极管和电压调节器(或齐纳二极管作为电压调节器)网络来“强制”终止器与电缆的阻抗匹配。有些人建议使用FPT使关键总线稳定运行,但一般不推荐,因为它在峰值浪涌期间消耗的电流远高于SCSI规范允许的范围,存在一定危险,特别是与新主机适配器和设备中的主动否定驱动器结合使用时,对否定设备的线路驱动器极其危险。
6. PC硬件资源使用

为了确定系统中附加卡的可能配置,以下是一些常见的I/O端口、中断(IRQ)和DMA通道的使用情况:
| 十六进制端口范围 | 定义用途 | 其他用途及注释 |
| — | — | — |
| 0 - FF | 仅内部使用 | 插件卡通常不使用此范围内的I/O端口 |
| 100 - 1EF | 未定义 | |
| 170h - 177h | 辅助ATA硬盘控制器 | |
| 1F0 - 1F7 | 主ATA硬盘控制器 | |
| 200 - 20F | 游戏杆端口 | 通常仅使用200 - 207 |
| 210 - 26F | 未定义 | 210、220、230、240、250、260、280是Sound Blaster及其兼容设备的典型端口 |
| 270 - 27F | 打印机端口 | 通常不再用于打印机,ISA即插即用通常使用此空间 |
| 280 - 2AF | 未定义 | |
| 2B0 - 2DF | 替代EGA地址范围 | |
| 2E0 - 2EF | 未定义 | GPIB接口卡使用2E0h - 2Efh |
| 2F0 - 2F7 | 未定义 | |
| 2F8 - 2FF | 串行端口2(COM2:) | |
| 300 - 36F | 未定义 | 此范围为原型卡保留,许多开发人员将其用于适配器。MPU - 401 MIDI辅助地址范围为300h - 301h,MPU - 401 MIDI主地址为330h - 331h |
| 370 - 37F | 并行端口1 | 仅使用370 - 377 |
| 380 - 38F | 未定义 | SDLC或第二个双同步控制器 |
| 390 - 39F | 未定义 | 为IBM集群适配器保留 |
| 3A0 - 3AF | 未定义 | 为IBM双同步控制器保留 |
| 3B0 - 3BF | 单色视频卡和打印机端口 | 仍需用于兼容性,该板上的打印机端口使用3BC - 3BF |
| 3C0 - 3CF | EGA视频卡 | 仍需用于兼容性 |
| 3D0 - 3DF | CGA视频卡 | 仍需用于兼容性 |
| 3E0 - 3EF | 未定义 | |
| 3F0 - 3F7 | 软盘控制器 | |
| 3F8 - 3FF | 串行端口1(COM1:) | |
| 400 - FFFF | EISA和PCI板 | 在此范围内,地址通常由PCI自动分配 |

中断号(IRQ) 定义用途 注释
0 定时器 主板需要
1 键盘 主板需要
2 IRQ 8 - 15的级联 IRQ 2用于级联第二个中断控制器。IRQ 2上的设备会重新定位到IRQ 9,因此对于系统而言,IRQ 2 = IRQ 9。此IRQ可用于扩展板,但有时有点棘手
3 串行端口COM2
4 串行端口COM1
5 空闲 如果安装,由打印机端口LPT 2使用
6 软盘控制器
7 打印机端口LPT1 IRQ 7通常可在打印机端口和声卡之间共享
8 实时时钟 主板需要
9 IRQ 2重定向 见IRQ 2
10 空闲
11 空闲
12 空闲
13 数学协处理器 主板需要
14 硬盘控制器1 通常是IDE/ATA通道1。如果未使用IDE/ATA设备且禁用了板载控制器,则空闲
15 硬盘控制器2 通常是IDE/ATA通道2。如果未使用IDE/ATA设备且禁用了板载控制器,则空闲
DMA通道 定义用途 注释
0 空闲 8位DMA
1 空闲 8位DMA
2 软盘控制器 8位DMA
3 空闲 8位DMA
4 DMA 0 - 3的级联 主板需要
5 空闲 16位DMA
6 空闲 16位DMA
7 空闲 16位DMA

由于当今系统中ISA即插即用和PCI的自动配置很常见,通常不需要额外操心,但如果系统出现奇怪的锁定问题,还是要进行检查。

综上所述,了解SCSI总线的工作原理、定时要求、终止设置以及PC硬件资源的使用情况,对于正确配置和维护计算机系统至关重要。在实际应用中,务必仔细参考设备的安装或用户手册,以避免硬件冲突。

SCSI技术与PC硬件配置全解析

7. SCSI总线定时的实际影响

SCSI总线定时的各个参数对系统性能和稳定性有着重要影响。例如,仲裁延迟决定了设备获取总线控制权的等待时间,较长的仲裁延迟可能导致设备响应缓慢,影响系统的整体效率。而接收/发送断言周期则确保了信号的可靠传输,如果该周期设置不当,可能会导致信号丢失或误判。

下面以一个简单的例子来说明定时参数的重要性。假设一个SCSI设备在仲裁阶段断言了BSY信号,但由于仲裁延迟设置过短,设备在信号尚未稳定时就判定自己赢得了仲裁,这可能会导致与其他设备的冲突,从而引发总线错误。

为了更好地理解这些定时参数之间的关系,我们可以通过以下mermaid流程图来展示:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    A(设备检测到总线空闲):::process --> B(等待总线空闲延迟):::process
    B --> C(开始仲裁,断言BSY):::process
    C --> D(等待仲裁延迟):::process
    D --> E{是否赢得仲裁?}:::process
    E -- 是 --> F(进入选择阶段):::process
    E -- 否 --> C
    F --> G(进行信息传输):::process
    G --> H(等待传输周期):::process
    H --> I{是否完成传输?}:::process
    I -- 是 --> J(释放总线,进入总线空闲阶段):::process
    I -- 否 --> G
8. SCSI终止设置的操作步骤

在实际操作中,正确设置SCSI终止是确保系统正常运行的关键。以下是不同设备连接情况下的具体操作步骤:
- 仅内部设备
1. 确认主机适配器和最后一个连接器上的设备支持终止功能。
2. 打开主机适配器的终止开关(如果有)。
3. 检查最后一个连接器上的设备是否已内部终止,如果没有,则安装外部终止器。
- 仅外部设备
1. 检查主机适配器的终止设置,可通过跳线或软件进行配置。
2. 依次连接外部设备,确保每个设备的SCSI连接器连接正确。
3. 对于链中的最后一个设备,确保其内部终止或在其第二个SCSI连接器上安装终止器插头。
- 内部和外部设备
1. 禁用主机适配器上的终止功能。
2. 分别对最后一个内部设备和最后一个外部设备进行终止设置,方法与上述单独设置内部或外部设备相同。

9. PC硬件资源冲突的解决方法

在添加新的附加卡时,可能会遇到硬件资源冲突的问题。以下是一些常见的解决方法:
- 检查设备手册 :在安装新卡之前,仔细阅读设备的安装或用户手册,了解其所需的I/O端口、IRQ和DMA通道等资源。
- 使用自动配置工具 :现代的BIOS和操作系统通常提供了自动配置硬件资源的功能,可以利用这些工具来避免冲突。
- 手动调整资源分配 :如果自动配置工具无法解决问题,可以手动调整设备的资源分配。例如,通过更改设备的跳线设置或在BIOS中调整IRQ和DMA通道的分配。

为了更清晰地展示这些解决方法的流程,我们可以使用以下mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    A(计划添加新卡):::process --> B(阅读设备手册,确定所需资源):::process
    B --> C{是否有资源冲突?}:::process
    C -- 否 --> D(安装新卡):::process
    C -- 是 --> E(使用自动配置工具):::process
    E --> F{冲突是否解决?}:::process
    F -- 是 --> D
    F -- 否 --> G(手动调整资源分配):::process
    G --> H{冲突是否解决?}:::process
    H -- 是 --> D
    H -- 否 --> I(寻求技术支持):::process
10. 总结与建议

通过对SCSI总线技术和PC硬件资源使用的深入了解,我们可以更好地配置和维护计算机系统。在实际应用中,需要注意以下几点:
- 严格遵循SCSI总线的定时要求,确保信号的稳定传输。
- 正确设置SCSI终止,避免因终止问题导致的总线错误。
- 在添加新的附加卡时,仔细检查硬件资源的使用情况,避免冲突。
- 定期检查系统的硬件配置,及时发现并解决潜在的问题。

总之,掌握SCSI技术和PC硬件资源的相关知识,对于提高计算机系统的性能和稳定性具有重要意义。希望本文能够为读者在实际应用中提供有益的参考。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值