首页 / 专利库 / 工艺品 / 音调 / 受保护的可编程盒式存储器及使用它们的计算机系统

受保护的可编程盒式存储器及使用它们的计算机系统

阅读:136发布:2022-10-12

专利汇可以提供受保护的可编程盒式存储器及使用它们的计算机系统专利检索,专利查询,专利分析的服务。并且一个封 锁 的盒式 存储器 中的连接器允许存储器、存储器控制 电路 及封锁控制电路可插接地与CPU电路连通。存储器控制电路打乱某些总线线路,从而在复位时打乱存储器中的数据,并响应来自封锁控制电路的输入停止打乱总线线路。封锁控制电路监视总线,等待在总线上确定一个总线值的正确组合,此时,封锁控制电路令存储器控制电路停止打乱总线线路。,下面是受保护的可编程盒式存储器及使用它们的计算机系统专利的具体信息内容。

1、一种盒式存储器,具有一个可读存储器,并用于一个计算 机系统中;该计算机系统具有一个带有至少一条与之相关联的总线 的中央处理单元(CPU),并且该总线具有至少一条总线线路, 该盒式存储器的特征在于包括:
与所述存储器电路连通的一个存储器控制电路;
与所述存储器控制电路电路连通的一个封控制电路;以及
与所述存储器、所述存储器控制电路及用于连接所述存储器的 所述封锁控制电路电路连通的一个连接器,所述存储器控制电路及 所述封锁控制电路是与CPU可拆卸地电路连通的;
所述存储器控制电路有两种状态:一种解锁状态,其特征在于 与所述存储器的交至作用,使得当CPU访问所述存储器时,对于 一个给定的地址的由所述存储器读入CPU的结果对应于存储在所 述存储器中该地址上的值;以及一种封锁状态,其特征在于与所述 存储器的交互作用,当CPU访问所述存储器时,使得对于一个给 定的地址读入CPU的所述存储器的结果对应于不是存储在所述存 储器中该地址上的值。
所述存储器控制电路配置成响应来自所述封锁控制电路的输入 ,从所述封锁状态切换到所述解锁状态;以及
所述封锁控制电路配置成响应第一组预先选定的事件的出现, 令所述存储器控制电路进入所述封锁状态,并且所述控制电路进一 步配置成响应第二组预先选定的事件的出现,令所述存储器控制电 路进入所述解锁状态。
2、一种盒式存储器,具有一个可读存储器,并用于一个计算 机系统中;该计算机系统具有一个带有至少一条与之相关联的总线 ,并且该总线具有至少一条总线线路,该盒式存储器的特征在于包 括:
与所述存储器进行电路连通的一个总线线路加密器;
与所述总线线路加密器进行电路连通的一个封锁控制电路;
与所述存储器、所述总线线路加密器及用于连接所述存储器的 所述封锁控制电路电路连通的一个连接器,所述总线线路加密器及 所述封锁控制电路与CPU可拆卸地电路连通;
所述封锁控制电路配置成使所述封锁控制电路响应第一组预先 选定的事件的出现而令所述总线线路加密器打乱所述至少一条总线 的所述至少一条总线线路;以及
所述封锁控制电路进一步配置成使所述封锁控制电路响应第二 组预先选定的事件的出现而令所述总线线路加密器停止打乱所述至 少一条总线线路。
3、一种盒式存储器,具有一个可读存储器,并用于一个计算 机系统中;该计算机系统具有一个带有与之相关联的至少一条总线 的中央处理单元(CPU),并且该总线具有至少一条总线线路, 该盒式存储器包括:
与所述存储器进行电路连通的一个总线线路解码器
与所述总线线路解码器进行电路连通的一个封锁控制电路;
与所述存储器、所述总线线路解码器及用于连接所述存储器的 所述封锁控制电路电路连通的一个连接器,所述总线线路解码器及 所述封锁控制电路与该CPU可拆卸地电路连通;
所述封锁控制电路配置成使所述封锁控制电路响应第一组预先 选定的事件的出现而令所述总线线路解码器停止解码所述至少一条 总线;以及
所述封锁控制电路进一步配置成使所述封锁控制电路响应第二 组预先选定的事件的出现而令所述总线线路解码器解码所述至少一 条总线。
4、根据权利要求3的盒式存储器,其特征在于还包括一个音 调生成电路,它响应第三组预先选定的事件中至少一个事件的出现 而生成一个音调
5、一种保证一个具有一个可读存储器的盒式存储器特许用在 一个计算机系统中的方法,该计算机系统包括有经由具有至少一条 总线线路的至少一条总线,与该可读存储器电路连通的中央处理单 元(CPU),所述方法包括下述步骤:
打乱所述至少一条总线的所述至少一条总线线路;
检测一组预先选定的事件;以及
响应一组预先选定的事件的检测,不打乱所述至少一条总线的 所述至少一条总线线路。
6、根据权利要求5的方法,其特征在于所述检测一组预先选 定的事件的步骤包含检测确定在所述至少一条总线上的至少一个总 线值。
7、一种用于判定一个盒式存储器是否特许用在一个计算机系 统中的鉴别系统,其特征在于包括:
具有至少一条与之相关联的总线的一个中央处理单元(CPU ),以及其中所述至少一条总线包含至少一条总线线路;
与所述CPU可拆卸地电路连通的一个可寻址的盒式存储器, 包括:(ⅰ)与所述CPU电路连通的可读存储器;(ⅱ)沿所 述一条总线介于所述CPU与所述存储器之间并与所述CPU及所 述存储器电路连通的一个总线线路加密器;以及(ⅲ)与所述 CPU及所述总线线路加密器电路连通的一个封锁控制电路;
所述封锁控制电路配置成使所述封锁控制电路响应第一组预先 选定的事件的出现令所述总线线路加密器打乱所述至少一条总线的 所述至少一条总线线路;以及
所述封锁控制电路进一步配置成使所述封锁控制电路响应第二 组预先选定的事件的出现令所述总线线路加密器停止打乱所述至少 一条总线线路。
8、一种用于判定一个盒式存储器是否特许用在一个计算机系 统中的鉴别系统,其特征在于包括:
一个具有至少一条与之相关联的总线的中央处理单元(CPU ),所述至少一条总线包含至少一条总线线路;
与所述CPU可拆卸地电路连通的一个可寻址的盒式存储器, 包括:(ⅰ)与所述CPU电路连通的一个可读存储器;(ⅱ) 沿所述一条总线介于所述CPU与所述存储器之间的,并与所述 CPU及所述存储器电路连通的一个总线线路加密器;以及(ⅲ) 与所述CPU及所述总线线路加密器电路连通的一个封锁控制电路 ;
所述总线线路加密器具有两种状态:一种加密状态,其特征在 于所述总线线路加密器打乱所述至少一条总线的所述至少一条总线 线路;及一种非加密状态,其特征在于所述总线线路加密器不打乱 所述至少一条总线的所述至少一条总线线路;
所述总线线路加密器配置成响应来自所述封锁控制电路的输入 将所述加密状态切换到所述非加密状态;以及
所述封锁控制电路配置成使所述封锁控制电路响应第一组预先 选定的事件的出现令所述总线线路加密器进入所述加密状态,并且 所述封锁控制电路进一步配置成使所述封锁控制电路响应第二组预 先选定的事件的出现令所述总线线路加密器进入所述非加密状态。
9、根据权利要求7或8的系统,其特征在于所述预先选定的 事件包括系统加电。
10、根据权利要求7或8的系统,其特征在于所述预先选定的事 件包括系统复位。
11、根据权利要求5的方法,其特征在于所述预先选定的事件组 之一包括在所述至少一条总线上确定的至少一个总线值。
12、一种用在一个其存储器的第一区映射到第一个可寻址存 储设备并且存储器的第二区映射到第二个可寻址存储设备的计算机 系统中的鉴别方法,其特征在于包括下述步骤:
执行来自存储区中的第一区的代码;
确定存储器中第二区中的地址,而不执行第二存储设备内与对 应的地址相关联的代码;
执行来自存储器中第二区中的代码。
13、根据权利要求12的一种方法,其特征在于包括下述步 骤;
执行来自存储器中第一区中的代码;
确定对应于存储器中的第二区的地址,而不执行第二存储设备 中与对应的地址相关联的代码;
从存储器的第二区中复制一个存储器到一个RAM中;
执行从存储器中第二区复制的所述代码。
14、一种保证具有一个可读存储器的存储设备特许用在具有 与该可读存储器电路连通的第一中央处理单元(CPU)及第二中 央处理单元、并具有与第一与第二CPU电路连通的一个随机存取 存储器(RAM)的一个计算机系统中的方法,其特征在于包括下 述步骤:
用第一CPU从可读存储器中将一个可在第二CPU上执行的 第一程序复制到RAM中;
用第二CPU执行所述第一程序;
用所述第二CPU将一个不能在第一CPU上执行的一个存储 器块复制到RAM中;
将所述存储器块变换成能够在所述第一CPU上执行的第二程 序;以及
在所述第一CPU上执行所述第二程序。
15、根据权利要求14的方法,其特征在于所述变换所述存 储器块的步骤包含解压缩所述存储器块的步骤。
16、根据权利要求14的方法,其特征在于变换所述存储器 块的所述步骤中包含解密所述存储器块的步骤。
17、根据权利要求14的方法,其特征在于变换所述存储器 块的所述步骤中包含定位所述存储器块的一个可执行部分并通知所 述第一CPU所述存储器块的所述可执行部分的位置的步骤。
18、一种计算机系统,具有:
经由第一系统总线与一个声频/视频/CD驱动控制器/协 处理器电路连通的一个中央处理单元(CPU);以及
经由第二系统总线与所述声频/视频/CD驱动控制器/协 处理器电路连通的一个系统存储器;其特征在于:
所述A/V/CD控制器/协处理器包含一个仲裁器,用于在 所述第二系统总线、一个存储器接口、一个图形协处理器、一个数 字信号处理器、一个密致盘控制器及一个视频控制器之间进行仲裁 控制,所有这些设备都是与所述CPU及所述系统存储器电路连通 的,并且各配置成使所述CPU、所述图形协处理器、所述数字信 号处理器、所述密致盘控制器及所述视频控制器中任何一个都可成 为所述第二系统总线的总线主控设备。
19、根据权利要求18的计算机系统,其特征在于包括一个 中断控制器,用于将中断连接到响应所述中断控制器的所述CPU 及所述仲裁器,使得直到所述中断控制器检测到出现一个中断为止 ,所述CPU并没有控制所述第二系统总线的最高优先级。
20、根据权利要求7或8的系统,其特征在于包括:
经由所述至少一条总线与所述CPU电路连通的一个声频/视 频/CD驱动控制器/协处理器;以及
经由第二总线与所述声频/视频/CD驱动器/协处理器电路 连通的一个系统存储器;
所述A/V/CD控制器/协处理器包含一个仲裁器,用于仲 裁控制所述系统总线、一个存储器接口、一个图形协处理器、一个 数字信号处理器、一个密致盘控制器及一个视频控制器,所有这些 设备都是与所述CPU及所述系统存储器电路连通的,并且各配置 成使所述CPU、所述图形协处理器、所述数字信号处理器、所述 密致盘控制器及所述视频控制器中任何一个都可成为所述第二总线 的总线主控设备。
21、根据权利要求7或8的系统,其特征在于包括:
经由所述至少一条总线与所述CPU电路连通的一个声频/视 频/CD驱动控制器/协处理器;
经由一条第二系统总线与所述声频/视频/CD驱动控制器 /协处理器电路连通的一个系统存储器;
所述A/V/CD控制器/协处理器包含一个仲裁器,用于仲 裁控制所述第二总线、一个存储器接口、一个图形协处理器、一个 数字信号处理器、一个密致盘控制器及一个视频控制器,所有这些 设备都是与所述CPU及所述系统存储器电路连通的,并且各配置 成使所述CPU、所述图形协处理器、所述数字信号处理器、所述 密致盘控制器及所述视频控制器中任何一个都可成为所述第二总线 的总线主控设备;以及
还包括一个中断控制器,用于将中断连接到响应所述中断控制 器的所述CPU及所述仲裁器,使直到所述中断控制器检测到出现 一个中断为止,所述CPU并不具有控制所述第二系统总线的最高 优先级。

说明书全文

发明总的来说涉及计算机体系结构,而更具体地涉及带有可 装卸可编程盒式存储器计算机系统。该系统具有地址加密保护电 路以防止在计算机系统中使用非特许盒式存储器以及防止非特许系 统使用盒式存储器。

视频图形计算机系统是众所周知的流行消费品。一个典型的系 统包含一个连接在一台普通电视机上用于显示游戏图象或其它应用 的数据处理单元。该数据处理单元接受来自通常组装成盒式的一个只 读存储器(ROM)的控制软件。该盒式存储器是可卸地插入数据 处理单元中的。在该数据处理单元上还连接至少一种指点设备,诸 如鼠标器、操纵杆、触摸板开关盘或光枪等,使玩游戏的人能够 输入位置信息供控制软件来执行应用程序。

该数据处理单元通过具有一个单一的中央处理单元(CPU) 及相关的易失性及非易失性存储器,其中包括所有的随机存取存储 器(RAM)及引导只读存储器(引导ROM);一个电视(射频 图象)信号发生器;以及用来与各种指点设备接口的一个输入/输 出(I/O)处理器。这些设备是电路连通的。这种系统的一个显 著特点是利用一主板或系统板来将这些部件电连接在一起。

在这种计算机系统中,部件是通过电信号通信的;因此,许多 部件必须是电路连通的,以便信号在部件之间传递。这些电信号通 常是由系统部件之间的电连线传送的。电连线的典型类型中包括印 刷电路板(PCB)上的金属迹线,多层PCB的不同层之间的通 路、电通孔、插头、以及连接系统部件的各脚的独立导线。通常 将电信号组及传送这些电信号的电连线组称作“总线”。因此,所 谓“总线”可以是指一组电信号、一组传送这些电信号的电连线、 或者是对一组电信号及一组传送这些电信号的电连线两者的合称。

总线通常是由“总线线路”构成的。引用一条单独的“总线线 路”可指一条总线中的一条电连线或者一条总线的一个电信号。计 算机系统中的存储器是分解成称作“字节”的细小部分的。存储器 中各字节有其唯一的“地址”,这类似于个人住所的唯一地址。存 储在存储器中的信息称作“数据”。一个计算机系统通常有三条总 线:一条地址总线、一条数据总线、及一条控制总线。当一台计算 机从存储器中一个特定的地址读取一个信息时,CPU将存储器中 这一特定点的地址确定在地址总线上,然后CPU使用控制总线通 过存储芯片CPU要求访问存储在该地址种的信息。然后,存储芯 片将存储在该单元上的信息确定在数据总线上。最终,CPU从数 据总线上读取数据。上述过程是非常快的,每秒钟可进行数百万次 之多。    

在典型的基于盒式存储器的系统中,地址总线、数据总线及控 制总线通过接线器从数据处理单元延伸至盒式存储器内的电器件上 。这样,当盒式存储器连接在数据处理单元上时,盒中的程序ROM 是如数据处理单元内的引导ROM及系统RAM一样与CPU电路 连通的。

这种系统的商业上的成功推动了其它原来不制造这种产品的厂 商设计与制造与之竞争的盒式存储器及数据处理单元。非特许的盒 式存储器能在特许的数据处理单元中执行;同样,非特许的数据处理 单元能执行特许盒式存储器中所包含的程序。这种竞争设备不是总 能够和真正的设备“完全兼容”的,因此非特许的设备可能不正常 工作。更有甚者,这些非特许设备的不兼容性可能使特许设备不正 常工作,从而玷污制造特许盒式存储器与特许数据处理单元的厂商 的形象。

再者,真正的设备通常是设计与推向市场用来执行设计完善及 执行顺利的程序的。容忍他人推销缺少相似的完善性及质量的程序 或数据处理单元会进一步玷污制造特许盒式存储器与特许数据处理 单元的厂商的形象。因此,在以盒式存储器为基础的计算机系统中 ,希望防止两种形式的非特许使用:(1)在一个特许的处理器 单元中使用非特许的盒式存储器,及(2)在一个非特许的处理器 单元中使用特许的盒式存储器。从而,希望具有鉴别用在一个数据 处理单元中的一个盒式存储器及防止盒式存储器的非特许使用的能 。典型的已有技术设备无法提供对这一问题的经济实用令人满意 的解决方案。

1989年元月24日颁发给Nakaqawa的美国专利4,799,635 号中提出了这种先有技术系统的一个实例,它是基于盒式存储器 的游戏机单元的一种鉴别技术。软件控制的微处理器存在于各数据 处理单元及盒式存储器中,用于执行相关算法然后比较它们的结果 。当将一个盒式存储器插入数据处理单元中对,在游戏单元接受盒 式存储器并用它操作之前必须得出满意的比较结果。这一方法是相 当复杂的并增加了制造盒式存储器的成本,这是因为在设计盒式存 储器时必须加上一个微控制器

因此,希望在盒式ROM上设置一个较简单的安全电路而令主 数据处理单元只接受可信的盒式存储器并防止在非特许系统中使用 特许的盒式存储器。

此外,典型的先有技术系统具有一条单一的系统总线,用于在 各部件之间传送数据。只有一条系统总线会降低系统性能,因为所 有的I/O设备依靠CPU来访问存储器。再者,典型的系统并未 提供处理高性能视频、图形及声音问题的综合解决方法。

根据本发明,在一个程序盒式存储器设置有一个介于CPU与 盒式程序ROM之间的地址加密器及封控制电路。在系统起动时 ,该地址加密器“封锁”盒式存储器,防止存取数据。数据处理单 元为了“解锁”该盒式程序存储器需要向该封锁控制电路传送一个 “密码”,控制电路从而使地址加密器“解锁”该盒式程序存储 器。

地址加密器通过打乱CPU与盒式存储器中的ROM之间的地 址总线的地址线路来封锁该盒式存储器。当地址线路被打乱时, CPU仍然访问ROM中的存储单元;然而,存储器中的数据在存 储器中的地址就错了,因此,在地址加密器正在打乱地址线路时, CPU不能执行盒式ROM中的程序。从而,“封锁”了该盒式存 储器。

为了“解锁”盒式存储器,CPU将一个预定的地址序列设定 在地址总线上。由于程序ROM被打乱了,这一设定只是存储器到 寄存器的操作,从而防止了实际执行程序ROM中的代码。任何想 执行ROM中的代码的企图会导致系统崩溃,这是由于典型的指令 是多字节指令而打乱字节的次序会导致不正确地执行这些指令。

地址序列起“密码”的作用来解锁该盒式存储器,封锁控制电 路监视地址总线,等待CPU将正确的“密码”写在地址总线上。 一旦封锁控制电路检测到正确的地址序列,封锁控制电路便令地址 加密器停止打乱ROM与CPU之间的地址线路。当地址线路不再 被打乱时,CPU便能执行盒式ROM中的程序。该盒式存储器便 “解锁”了。

在盒式存储器上加上地址加密器及封锁控制电路只增加少量或 不增加盒式存储器的成本。除了ROM以外,典型的先有技术盒式 存储器中还有一众所周知的称作“地址译码器”的可编程逻辑芯片 。典型的可编程逻辑芯片具有足够的容量来实现地址译码器及本发 明的地址加密器与封锁控制电路。因此,本发明可加在盒式存储器 中而不增加任何附加的芯片,从而以少量或无附加成本增加这些功 能。

因此,本发明的一个优点为提供一种非常低成本而高效的防止 非特许使用盒式存储器与数据处理单元的方法。

除了封锁的盒式存储器,本发明还利用一块大容量定作芯片来 执行实现高速、高分辨率声频/视频系统所必需的多种任务。该芯 片包括一个与CPU的接口、一个CPU“高速缓存”、一个存储 器控制器、一个存储器仲裁器、一个DRAM刷新器、一个密致盘( CD)驱动控制器、一个数字信号处理器(DSP)声音协处理器 、及一个“阻击器(blitter)”图形协处理器。借助于这一“声频 /视频/CD控制器/协处理器”(“A/V/CD控制器/协处 理器”),一个非常高速、高分辨率系统就非常低成本高效地实现 了。整个数据处理系统包括一个CPU、A/V/CD控制器/协 处理器、存储器、一个TV信号发生电路、一个I/O处理器、两 个译码器可编程阵列逻辑设备(译码PAL)、两个盒式存储器插 头座以及一个扩展插头座。

A/V/CD控制器/协处理器从由CPU发出的系统总线上 形成第二系统总线(副系统总线)。系统存储器(包括视频RAM 、系统RAM及引导ROM)是经由该副系统总线接口的。盒式 ROM则是经由系统总线接口的;再有,处理器“高速缓存”是经 由系统总线接口的。这样,当A/V/CD控制器/协处理器与系 统存储器执行功能时,CPU便能存取盒式ROM及“高速缓存” ,从而允许CPU与A/V/CD控制器/协处理器的并行操作。

因此,本发明的另一优点为对设计一种高速、高分辨率计算机 系统提供了一种多芯片解决方案。

从对本发明的详细描述中,本发明的这些及其它优点将更为明 显。

在结合并构成本说明书的一部分的附图中,示出了本发明的实 施例,它们连同上面给出的发明的一般性描述及下面给出的详细描 述,用来例示本发明的原理。

图1A与1B为本发明的系统的总体配置的方框图

图2为本发明中所使用的视频数一模转换器的一部分的电原理 图;

图3为本发明的地址加密器的一种实现的示意图;

图4为本发明的A/V/CD控制器/协处理器的方框图;

图5为用于“封锁”一个盒式程序存储器的另一种电路的方框 图;以及

图6为用于“封锁”一个盒式程序存储器的第三种方案的存储 器图。

参见图1A与1B,其中示出了本发明的一个计算机系统10 。如图1A中所示,系统10包括一个数据处理单元12及一个可 卸地连接在其上的盒式程序存储器14。同时连接在数据处理单元 12上的有一台标准电视机(TV)16、一个供选用的键盘18 、一个或多个供选用的控制器20a与20b、以及一个供选用的 CD驱动器22。虽然在图1A中未示出,该标准TV16可用一 对扬声器及一个接受复合视频信号的显示设备来代替。

处理单元12包括一个中央处理单元(CPU)30、一个声 频/视频/CD驱动器(A/V/CD)控制器/协处理器32、 一个系统存储器34、一块第一译码芯片PAL1 35a、一块 第二译码芯片PAL2 35b(也示出在图4中)、一个I/O 处理器36、两个盒式存储器插头座(其中一个一般性地示出在 37a处,另一个未示出)、生成声频与视频信号所需的附加电路 38、以及一个扩展插头座(一般性地在图4中示出在39处)。 这些设备是如图1A所示的电路连通连接的。附加电路38示出 在图1B中,并在结合图1B的文字中更详细地讨论。

CPU30发出多条总线:一条数据总线31a、一条地址总 线31b及一条控制总线31c,它们是本技术中众所周知的。这 三条总线集体称作系统总线31。在较佳实施例中,CPU30为 由英特尔公司(3065 Bowers Ave.,Santa Clara,California, 95051)制造的80376。80376是著名的80386SX的一种改型,后者是本 技术中众所周知的并且也能从英特尔公司购得。80376与80376SX的 不同点在于80376以32位模式起动而不是16位模式。具体地说 ,CRO寄存器(控制只读寄存器)被强制置位成0011H(十 六进制的0011)状态而将位0强制置位成逻辑“1”,有效地 使376在一种32位存储器模式中操作。启动分页来容许虚拟 386操作。

在结合图4的文字中将详细讨论A/V/CD控制器/协处理 器32。现在只要说明下述问题就够了,即A/V/CD控制器/ 协处理器32包括下述功能块:一个存储器刷新器、一个视频控制 器、一个“阻击器(blitter)”图形协处理器、一个CD驱动 控制器、一个数字信号处理器(DSP)声音协处理器、以及一个 用于仲裁六个可能的总线主控器(CPU、“阻击器(blitter)”、 DSP、存储器刷新器、视频控制器、以及CD驱动控制器)之间对 系统存储器的存取的仲裁器。“阻击器(blitter)”(阻击器图 形协处理器)在没有处理器干预的情况下具有传送/移动大块存储 内容的块传输功能。仲裁器控制这些设备的不断变化的优先级,如 这里所描述的,并且它是与A/V/CD控制器/协处理器32中 的所有设备电路连通的。例如,直到出现一个中断以前,CPU 30具有所有总线主控设备中最低的优先级。从而,仲裁器既与 CPU接口60电路连通又与中断控制器68电路连通。

CPU30具有与之关联的一条系统总线31。系统总线31 是指图1中所示的组合数据总线31a、地址总线31b及控制总 线31c而言。A/V/CD控制器/协处理器32便是用于系统 存储器34的仲裁器;因此,A/V/CD控制器/协处理器32 将系统总线31改变成副系统总线61(包括副数据总线61a、 副地址总线61b及副控制总线61c)。

系统存储器34包括屏幕RAM、系统RAM及引导ROM。 系统存储器34将在结合图4的文字中更详细地讨论。

I/O处理器36将CPU30接口到许多I/O设备上,诸 如键盘18、控制器20a与20b、一个数字化转换器(未示出 )、一个鼠标器(未示出)、一台打印机(未示出)以及一个触摸 板(未示出)。在较佳实施例中,I/O处理器36是莫托罗拉公 司(Motorola Corp,)制造的以2MHz运行的预编程的MC6 8HC705C8(此后称作“68HC705”)。通过将68 HC705I/O处理器36配置成一个外部设备来与CPU 30接口:(1)将PA0-PA7连接到数据总线31a的D0 -D7上;(2)将PB7、PB1与PB2分别连接到地址总线 31b与控制总线31c的GPI01(如下所述,指由A/V/ CD控制器/协处理器32译码的一个32字节地址范围)、A1 与A2上;以及(3)将PB3、PB4与PB5分别连接到控制 总线31c的ADS、READY、与W/R上。从而,I/O处 理器被解码成具有I/O空间中的4个16位地址(在这里称作 AS0、AS2、AS4与AS6)。

68HC705中的程序与CPU30的接口如下。68HC 705是设计成直接挂在处理器总线上并作为对CPU30的一个 I/O端口工作的。一对内部锁存器保持两个处理器之间传递的数 据直到另一个准备好接收它为止。各处理器的状态位表示数据锁存 器的状态。通过检验状态位,各处理器能知道前面的数据是否已被 读取以及是否有数据正在等待读取。

I/O协处理器36实现下述功能:(1)一个50毫秒定时 器,(2)输入设备的一条串行控制器链路,(3)盒式存储器感 测,(4)系统复位,以及(5)一条用于CD驱动器22的数据 /选通/确认(DSA)CD控制通信链路。

50毫秒定时器是利用68HC705I/O协处理器36 的监视器定时器实现的。当监视器定时器到对时,I/O协处理器 36用A/V/CD控制器/协处理器32的模拟中断1(AI1) 中断CPU30。CPU30以读取如前所述的16位I/O端口 ASO来响应这一中断,它令A/V/CD控制器/协处理器32 激活I/O协处理器36,从而导致CPU30与I/O协处理器 36之间的一次数据传输。

控制器20、键盘18及所有其它输入设备都是经由串行控制 器链路连接到I/O处理器36上的。控制器将控制设备的活动变 换成适合于沿串行链路传输的格式。控制器经由控制器串行数据链 路将数据包送到系统单元。数据包随IO设备的类型而不同。坐标 型设备(鼠标器、模拟式操纵杆、触摸板等)具有与开关闭合型设 备(键盘、数字操纵杆、开关盘等)不同的数据包。

串行控制器链路由三条线路(3)构成:一条数据接收线、一 条VCC(+5伏直流电)线及一条地线。68HC705用PDO /RDI脚来实现控制器串行链路的数据接收线。该脚是设计成用 众所周知的异步格式与串行设备接口的。一种时钟同步格式也能用 作替代。串行控制器链路用一个三导线接线器连接到外部设备上。 输入设备是菊花链接的,因此只有一个单一的设备物理地连接在数 据处理单元12上。

盒式存储器感测是通过令I/O协处理器36查询盒式存储器 插头座37a的一个脚来实现的。该脚由系统板上的一个上拉电阻 器拉升到一个逻辑“1”,而一个准确连接的盒式存储器则将其拉 至一个逻辑“0”。

复位是通过使I/O协处理器36获得对CPU30及A/V /CD控制器/协处理器32的复位信号的控制而实现的。CPU 30能命令I/O协处理器36复位系统10。此外,I/O协处 理器36监视系统的复位开关(未示出),每当它检测到一次开关 闭合时便复位系统。

DSACD控制协议是使用68HC705的三个脚实现的。 I/O协处理器36使用这一协议来对CD驱动器22传送命令及 将来自CD驱动器22的消息转发到CPU30。

第一译码芯片PAL1 35a是沿地址总线31b与控制总 线31c与CPU30、A/V/CD控制器/协处理器32及两 个盒式存储器插头座37a(另一个未示出)电路连通的,如图1  A中所示。第一译码芯片PAL1 35a接收两条高位地址线作 为输入,将80376 CPU30的16兆字节地址空间译码成 由三条芯片选择线表示的四个4兆字节区域:两条用于盒式存储器 插头座37a(另一个未示出),一条用于A/V/CD控制器/ 协处理器32。高端四兆字节及低端四兆字节是译码成A/V/ CD控制器/协处理器芯片选择的,而剩下的两个4兆字节区是译 码成两个盒式存储器插头座芯片选择的。

数据处理单元12也有一对盒式存储器插头座(一个示出在 37a处,另一个未示出)用于将一个盒式存储器14与CPU3 0及其它系统部件电路连通。盒式存储器14经由一个镀金的70 脚(两行35个导线)边缘卡插接件37b连接到数据处理单元 12上。处理器单元12有两个盒式存储器插头座37a,用于接 纳边缘卡插接件37b的边缘卡插接端。盒式存储器14具有镀金 的卡边缘接线端来配合插头座37a的导线,允许盒式存储器14 插接在处理器单元12上。下述信号是经由盒式存储器插头座37a (另一个未示出)传送给外部设备的:系统总线31信号、DSA CD控制信号、12S CD数据信号、一条盒式存储器感测线、电 源、地线、模拟中断1或2(各盒式存储器有一唯一的中断号)、 GPI0 2或3、一条封锁线(这是80376与80386SX 系统总线31的典型信号)、以及一个由第一译码芯片PAL1 35a生成的盒式存储器选择。

此外,处理器单元12具有一单一的100脚(两行各50脚) 边缘卡扩展插头座(未示出在图1A中,一般性地示出在图4中 39处),扩展插头座39允许设备在系统存储器34上增加更多 的存储器及增加各种其它性能。连接在扩展插头座39上的设备具 有镀金的卡边缘以便与扩展插头座配合,而允许这些设备插接在处 理器单元12上,下述信号经由扩展插头座39传送至外部设备: 副系统总线信号(在结合图4的文字中描述)、DSACD控制 信号、I2S CD数据信号、一条扩展插头座39感测线、电源、 地线、CAS与RAS线、以及一个由第二译码芯片PAL2 35b生成的扩展插头座39选择。

图1A的附加电路38示出在图1b中。参见图1b,附加电 路38包括四个设备:一个视频数字至模拟转换器(视频DAC) 40、一个NTSC/PAL(“PAL”指著名的欧洲电视信号 标准)编码器42、一个RF调制器44及一个音频模拟至数字转 换器/数字至模拟转换器/压缩器/解压缩器(ADC/DAC/ CODEC)46。

A/V/CD控制器/协处理器32具有若干功能块,它们将 在结合图4的文字中更全面地描述。现在只要知道其中两块是一个 视频控制器66及一个数字信号处理器(DSP)74就够了。

A/V/CD控制器/协处理器32的视频控制器66连接到 一个外部视频DAC40,后者将来自视频控制器66的18位象 素信息(红、绿及兰各6位)转换成众所周知的一个RGB信号。 如图2中所示,视频DAC的各颜色通道(R、G与B)是用一棵 R2R电阻器树及一个2N222晶体管实现的。如图所示,图 2中的设备是电路连通的。图2中的电阻器41a-41j都是 0.2 5瓦电阻器,其电阻值示出在图中,在5%容差范围内。晶 体管43为一个2N2222。

再参见图1B,用NTSC/PAL编码器42将RGB信号 转换成NTSC复合视频信号。NTSC/PAL编码器42接收 由A/V/CD控制器/协处理器32的视频控制器66生成的色 度时钟、HSYNC与VSYNC信号,以及由视频DAC40生 成的红、绿与兰视频输出,并以知名的NTSC或基带视频格式生 成一个复合视频信号。作为替代,也可生成知名的PAL(欧洲电 视信号标准)格式。用一个单一的RCA凹型声音插孔将复合视频 信号连接到外部设备上,如本技术中众所周知的那样。在较佳实施 例中,NTSC/PAL编码器42是一个莫托罗拉公司制造的 MC1377。

RF调制器44将来自MC1377的复合视频信号与来自 声频ADC/DAC/CODEC46的左右声道输出信号合并成 一个载波频率以生成一个适于直接输入电视机16的RF视频信号 (称为RF视频)。为了生成不同的PAL(欧洲电视信号标准)与 NTSC格式,必须使用不同的RF调制器及晶体。RF视频信号 用一个单一个凹型F型同轴线接插件连接到外部设备上,如本技术 中众所周知的那样。

声频ADC/DAC/CODEC46以符合著名的菲利浦 I2S协议的串行链路链接到DSP74上。ADC/DAC/C ODEC46将模拟数据转换成数字数据,或者反过来,并压缩与 解压缩数字数据。ADC/DAC/CODEC46将来自可选用 的麦克的外部立体声模拟数据接到A/V/CD控制器/协处理 器32上,声频输入是用一个标准的立体声1/4英寸接线器连接 到外部设备上的。声频ADC/DAC/CODEC46还通过生 成左右声道输出信号将来自A/V/CD控制器/协处理器的数字 数据接到外部设备上,这些信号是用两个凹形RCA听筒插孔连接 到诸如扬声器等选用的外部设备上的,这是在本技术中众所周知的 。如前所述,这些声频线信号还加到RF视频信号上。

在本较佳实施例中,该ADC/DAC/CODEC46为晶 体半导体(Crysta1 Semiconductor)公司制造的CS4216。 这一部件包含带有可编程增益的麦克风输入,以及带有可编程衰减 器的输出。增益与衰减两者都是由DSP74可编程控制的。

作为替代品,可用一个菲利浦制造的TDA1311来替代 ADC/DAC/CODEC46。如果使用了这种芯片,则得不 到ADC与CODEC功能。

最后,数据处理单元12具有一个用于实现扩展插头座39的 芯片选择的第二译码器芯片PAL2 35b。译码芯片PAL2 35b是沿副系统总线61与A/V/CD控制器/协处理器32 及扩展插头座39电路连通的。第二译码芯片PAL2 35b只 允许A/V/CD控制器/协处理器32译码从F20000H起 始的一个128K的系统ROM1块。从F40000H至FFFFFFH的范围 是由PAL2 35b译码,用于扩展插头座39的。译码芯片 PAL2 35b所译码的ROM的这一块是用于经由扩展插头座 39将ROM增加到系统10上的。

如图1A中所示,盒式程序存储器14包括一个程序ROM5 0及一个封锁电路52。程序ROM50中包含以只读存储器格式 的适合于在CPU30上执行的代码。在替代品中,诸如电池后 备的RAM等其它存储器类型可用作盒式存储器14中的存储设备 。如图1A所示,程序ROM50是与CPU30电路连通的。在 本较佳实施例中,封锁电路52包括一个存储器控制电路,例如一 个地址加密器54,以及一个封锁控制电路56。

地址加密器54沿地址总线31b介于程序ROM50与CPU 30之间。它发出一条加密时第三地址总线55,如图1A与3中 所示。如图所示,地址加密器54不需要每一条地址线都作为一个 输入端。地址加密器54可实现为只需要打乱n位地址总线31b 中的m条地址线,在图3中,地址线Ao至Am被打乱而生成Ao′ 至Am′,将它们输入程序ROM50。两条低位地址线中的至少一 条应加以打乱以充分加密数据。如图1A与3中所示,地址加密器 54还生成一个典型的ROM50的芯片选择信号57,正如本技 术中所共知的。

在本较佳实施例中,地址总线31b中的三条地址线A0、A 1与A2被打乱而形成第三地址总线55;地址总线31b中其余 的地址线与第三地址总线55相同。地址总线31b的线A0换到 第三地址总线55的线A2上。地址总线31b的线A2换到第三 地址总线55的线A1上。最后,地址总线31b的线A1换到第 三地址总线55的线A0上。这便有效地加密了ROM50中的数 据使之不能执行。此外,ROM50中的各数据字节仍具有唯一的 地址,而容许在试图解锁盒式存储器之前,计算ROM50的校验 和(将所有字节加在一起,不考虑进位)。

整个封锁电路52可在本技术中熟知的一个可编程逻辑阵列( PAL)、一个可编程逻辑器件(PLD)、一个专用的集成电路 (ASIC)或一个现场可编程阵列(FPGA)上实现。封锁 控制电路56包括若干与一个同步状态机电路连通的比较器。该状 态机初始化成一种“封锁的”状态,令地址加密器54打乱地址线 。不正确的地址将状态机保持在该封锁状态中。当在地址总线上确 立了正确地址序列中的各地址时,适当的比较器指明该地址的出现 ,而令状态机转换到下一状态。如果正确的地址以正确的次序出现 ,则状态机进入“解锁”状态,而令地址加密器54停止打乱地址 线,在加密器54“解锁”前任何时刻,一个不正确的地址使封锁 控制电路56返回到初始“封锁”状态。一旦封锁控制电路56解 锁了加密器54,封锁控制电路56便将加密器54保持在解锁状 态中直到机器复位或再次启动系统电源为止。

在另一种可选方案中,封锁控制电路56可配置成在出现一个 或多个预先选定的事件时重新进入封锁状态,令地址加密器54重 新打乱地址线直到在地址总线上以正确的次序确立正确的地址序列 。还有一种方案,封锁控制电路56设计成不必要求地址以正确的 序列出现。而是,状态机可设计成只要求确定所有预先选择的地址 ,而不考虑正确的次序。

系统加电时,封锁控制电路56令地址加密器54打乱一条或 多条从CPU30到程序ROM50的地址线。此外,封锁控制电 路也能设计成令地址加密器54响应其它事件而打乱地址线,诸如 系统复位、或者一个单稳多谐振荡器的到时,这便要求CPU周期 性地将正确的组合确定在地址总线31b上。打乱地址可采取交换 两条或两条以上地址线的方式(例如,将地址线A3与地址线A6 交换)或者将一条或多条地址线反映在一条或多条其它地址线上( 例如,令出现在地址线A3上的信号同时出现在地址线A3、A4 、及A5上)。在本较佳实施例中,地址总线传导路径并不实际打 乱(如果使用机电继电器来打乱地址线时便是实际打乱的);而是 电子地交换地址总线传导路径上的信号。再者,在替用品中的地址 加密器54可采用随机选择的多种打乱模式。

这样,盒式存储器便被“封锁”而不能用于非特许的设备。此 外,存储器控制电路不限于一个地址加密器54。也可用一个数据 总线31a加密器或一个控制总线31c加密器或任何数据总线 31a、地址总线31b或控制总线31c的打乱的组合或排列来 达到封锁效果。因此地址总线加密器54不一定非打乱地址总线 31b线路不可,因为一个更广义的“总线加密器”可用于实现存 储器控制电路。

地址加密器54可实现为一个多路转换器,它响应来自封锁控 制电路56的输出,在正确地址与打乱的地址之间切换。

由于程序ROM50正在输出的数据将不对应于正确序列中的 可执行代码,因此对于非特许的设备,盒式程序存储器14是“封 锁”的。交换或者映射地址线将具有替换各自地址的作用从而达到 搅乱代码的次序的效果。因此,当地址加密器54正在打乱地址时 ,企图读取盒式存储器14内的程序ROM的任何非特许的设备将 读出被扰乱了的操作码与操作数,它们非常可能是无意义的。在任 何情况下,当地址线被扰乱时,应用程序不会像所期望的那样执行 。

为了“解锁”盒式存储器,CPU30以一种特定的次序访问 地址31b总线上的一个或多个地址。封锁控制电路56监视地址 总线31b。一旦适当的地址序列出现在地址总线31b上,封锁 控制电路便令地址加密器54停止打乱将程序ROM50连接到 CPU30上的地址线。一旦地址加密器54停止打乱地址线, CPU30便能访问程序ROM30中的代码并执行其中的程序。

在盒式存储器14中加入地址加密器54及封锁控制电路56 ,只在盒式程序存储器14上增加极少的成本(如果真有增加的话) 。通常,盒式存储器利用盒式存储器14内的一个地址译码器来对 地址总线31b的全宽度译码以适用于程序ROM50的存储量。 例如,一兆字节的ROM有20条地址线;然而,CPU30的整 个地址总线31b是引出到盒式存储器14上的。如果CPU30 为一个80376或80376SX,则地址总线31b为24位 宽;因此,要求存储器译码器将24位地址空间译码到一个20位 区域中。因此,一个盒式存储器14通常需要一个内部地址译码器。

地址译码器通常是一个可编程阵列逻辑(PAL)或可编程逻 辑设备(PLD)。一种适用的PAL便是本技术中公知的并且是 由多家制造厂商(诸如AMD公司)制造的16V8。16V8除 了提供所需要的地址译码器以外,还提供实现地址加密器54及封 锁控制电路56的足够内部逻辑,因此,可以只增加极少的或不增 加单位附加成本而在盒式存储器14中实现本发明的封锁电路52 。

地址加密器54提供一种防止在非特许的系统中使用盒式程序 存储器14的“封锁”方法。此外,本发明的系统10提供一种防 止在本发明的特许系统10中使用非特许的盒式存储器的方法。

相对于未打乱的存储空间,打乱地址总线31b的线具有在存 储空间中交换与/或复制字节的效果。从而,以下述方法检测一个 非特许的盒式存储器:(1)CPU30从程序ROM中读取一个 打乱了的存储块,并将其值保存在系统存储器34的系统RAM中 ;(2)然后CPU330在地址总线331b上确定N个地址的正确 序列令盒式存储器中的封锁控制电路(如果有的话)使地址加密器 (如果有的话)停止打乱地址线;(3)CPU30像步骤(1) 中那样从程序ROM中同一位置处读取一个未打乱的存储块;以及 (4)CPU30比较打乱的与未打乱的存储块。

上述方法中的“N”应适当选择以防止被地址的顺序读取所误 解锁,这种顺序读取通常是作为校验和计算或程序执行的一个部分 而执行的。N=2为最小值并且只有当这些值不连续时才能接受。 在较佳实施例中,将采用大约6个地址(N=6)的一个序列。所 采用的地址的准确数量为锁存器的数量及用于实现地址解码器/加 密器54的可编程部分中可利用的输入脚的个数的一个直接函数。 锁存器及可利用的输入脚越多,实现封锁控制电路56的状态机就 越大。

如果这两个块中包含完全相同的数据,那么该盒式存储器没有 地址加密器54,因而是一个非特许的盒式存储器,而CPU便能 采取相应的行动(例如,停机、显示一则消息然后停机、进入一个 死循环等)。反之,如果从存储器中完全相同的单元中读出不同的 数据块,则该盒式存储器的确有一个地址加密器54而认为该盒式 存储器为一个特许的盒式程序存储器。

测试块可具有任何大小。合适的块大小是16位。此外,每次 系统10校验一个特许盒式存储器时,不一定非测试同一存储块不 可。再者,可以将封锁控制电路56设计成在地址总线31b上确 立一个不正确地址时不令状态机进入封锁状态。从而使被测试的地 址能与解锁系统的地址混合。

再参见图1A,其中示出了密致盘驱动器22与数据处理单元 12之间的接口。两条总线控制CD驱动器22:(1)一条用于 控制CD驱动器22的DSA总线及(2)一条I2S  CD数据 总线。DSA总线是由I/O协处理器3-6生成的而I2S CD 数据总线则是由A/V/CD控制器/协处理器32生成的。

参见图4,声频/视频/CD驱动器控制器/协处理器(A/ V/CD控制器/协处理器)32电子设备是大部分包含在一块称 作一个ASIC的定制的大规模逻辑芯片中的(ASIC是专用的 集成电路)。符合这里的描述的一个A/V/CD控制器/协处理 器32可从MSU有限公司(270Upper 4th Streect,Witan Gate West,Central Milton Keynes,MK9 1DP England)购得。A /V/CD控制器/协处理器32包含一个处理器接口60、一个 处理器高速缓存62、一个存储器接口/刷新器64、一个视频控 制器62、一个中断控制器68、一个视频阻击器(blitter) 70、一个CD驱动控制器72、一个数字信号处理器(DSP )74及一个DSP存储器76。处理器接口60、存储器接口/ 刷新器64及视频控制器66合起来称作视频/存储器控制器67 。系统存储器34、中央处理单元30及其它设备位于A/V/ CD控制器/协处理器32外面。

副系统总线61将各种设备电连接到系统存储器34上。六个 可能的总线主控器(分别从最高优先级到最低优先级的次序)共享 副系统总线61:存储器刷新器54、视频控制器66、CD驱动 控制器72、DSP74、阻击器(blitter)70及CPU 30(通过处理器接口60)。在任何一个时刻只有总线主控器中的一 个可控制到系统总线61(A/V/CD控制器/协处理器32与 系统存储器34之间的副数据总线61a、副地址总线61b及副 控制总线61c)。

视频/存储器控制器67控制副系统总线61,并将存储器定 时信号(诸如CAS、RAS允许写入等)提供给连接在副系统总 线61上的存储设备,如本技术中众所周知的。它还需要占用存储 器周期(需要视频存储器周期来从系统RAM中读取视频数据;由 于视频是由这一过程实时生成的,在需要视频数据时,视频逻辑必 须访问存储器),并且在副系统总线61上实际上具有最高优先级 ,如前所述。视频线取出视频数据及刷新动态RAM(DRAM) 的短时间间隔内,它暂停总线主控器的操作。它同时控制与CPU 30的接口。

DSP74是一个单片的用于声音合成的甚高速处理器,可以 以高达每秒33兆条指令(MIP)的速度远行。它能够经由一个 DSP DMA控制器(未示出)访问副系统总线61,该控制器 允许它将字节或字读出或写入系统存储器34。这些传送是以短脉 冲串方式进行,并在DSP程序的控制下。DSP74实际执行程 序,并将数据存储在本身的私用高速存储器76中。

CD控制器72的密致盘读取DMA通道允许系统将CD读取 数据传送到系统存储器34中而不需要任何软件开销。它可以直接 传送数据,它还包含一个CD块译码器。

中断控制器68将6种内部中断送至CPU30,视频中断( 最高优先级)、模拟中断1(AI1)、模拟中断2(AI2)、 模拟中断3(AI3)、CD块译码器中断、及DSP中断(最低 优先级)。在CPU30执行中断确认周期时,中断控制器自动清 除该中断。每一个中断可利用一个屏蔽位。

阻击器(blitter)70是一个用于快速屏幕更新与动画的一 个图形处理器,用作CPU30或DSP74的一个硬件图形子例 程。在阻击器(blitter)程序操作中它将成为总线主控器,因此 可以在相当长的时间间隔中拥有副系统总线61。然而,对于CP U30,它的优先级并不绝对;在出现中断时,可要求它将副系统 总线61放弃给CPU30。在系统级上,CPU30是最低优先 级的总线主控器,然而,它能够完全控制其它硬件,因此,副系统 总线61的使用完全在CPU30程序的控制下。

A/V/CD控制器/协处理器32有四个主要模块:一个视 频/存储器控制器67、一个密致盘读取DMA72、一个阻击 器(blitter)图形协处理器70及一个DSP74声频协处理器 。CPU30的地址空间被译码成A/V/CD控制器/协处理器 32中一组8位寄存器。所有内部存储单元是在偶数地址边界上的 ;在适当时可执行字宽度的I/O读与写。在这一特定实施例中, 可以不在字宽度的寄存器上执行字节宽度的写,而I/O周期也可不 用于存取奇地址。

除了上述寄存器,A/V/CD控制器/协处理器32还生成 三条来自系统总线31的备用通用I/O译码器线(GPI01、 GPI02及GPI03)。每条线提供一个32位地址范围。通 用译码器可以用于向A/V/CD控制器/协处理器32以外的设 备提供三种低电平有效的芯片启动信号。在数据处理单元12中, 通用译码器把地址范围译码到I/O协处理器36(GPI01) 及两个盒式存储器插头座37a(GPI02与GPI03),对 此上面已更全面地说明了。

视频/存储器控制器67执行四种功能:视频定时、中断处理 、视频显示生成、及存储器配置、刷新和定时。

视频/存储器控制器67具有一个可编程为能适应不同标准的 电视及高达640×480VGA标准的监视器的灵活的视频定时 发生器。同步脉冲的位置、消隐、显示区域、有效视频(当A/V /CD控制器/协处理器32正从存储器中取数据时)是在平范 围内以时钟周期并在垂直方向上以行号编程的。视频定时分成两个 部分。水平定时是以时钟周期定义的并且是由若干个十一位寄存器 确定的。垂直定时是以显示行定义的并由若干个十位寄存器确定。

共有九个水平寄存器:水平周期、水平同步、水平消隐结束、 水平消隐开始、水平显示开始、水平显示结束、水平取出开始、水 平取出结束及水平垂直同步。写入水平周期寄存器的值确定以时钟 周期表示的水平行长度。在一个实施例中,行长度比写入水平周期 寄存器中的数大一。所需数字的公式为:水平周期=(行长度×时 钟频率)-1。

写入水平同步寄存器中的值确定水平同步脉冲的宽度。以时钟 周期表示的水平同步宽度由水平周期寄存器与水平同步寄存器之间 的差给定。所需的数字的公式为:水平同步=水平周期-(水平同 步宽度×时钟频率)。水平消隐结束寄存器确定何时水平消隐结束 并且是以时钟周期表示的后沿的宽度。水平消隐开始寄存器确定水 平消隐开始位置。所需的数字的公式为:水平消隐开始=水平周期 -((水平同步宽度+前沿宽度)×时钟频率)。

水平显示开始寄存器指定以时钟周期表示的水平同步脉冲后沿 之后生成视频的时间。如果水平显示开始寄存器大于水平消隐结束 寄存器,视频/存储器控制器67在它们之间输出边界色。写入这 一寄存器的值通常应选择为将画面放置在电视屏面的中央。做到这 一点的寄存器数字的公式为:水平显示开始=(水平消隐结束+水 平消隐开始-(有效显示宽度×时钟频率))/2。

水平显示结束寄存器指定显示结束位置,从而以象素表示视频 显示的宽度。它应以下述数字来编程:水平显示结束=水平显示开 始+(象素数×每一象素时钟数)。如果水平消隐开始大于水平显 示结束,则输出边界色直到消隐开始为止。

水平取出开始寄存器确定行上第一次视频取出的位置。这一寄 存器应编程为在显示开始时正好填充完十六字节象素缓冲存储区。 在实践中,这意味着水平取出开始寄存器中的值是由水平显示开始 寄存器中的值,减去一个取决于显示模式的常数后的差给定的。下 表中包含在每一象素对应的位数与每一象素对应的时钟数的各种组 合下这一常数的值。例如,如果每一象素为四位而每一象素为五个 时钟,则常数为160。类似地,如果每一象素为四位而每一象素 为一个时钟,则常数为32。注意,如果每一象素为16位且每一 象素为一个时钟,则没有可用的常数。

每一象素时钟数                        5      4      3      2     1

每一象素位数4     160    128     96     64    32

            8     80     64      48     32    16

            16    40     32      24     16    无

水平取出结束寄存器确定行上视频取出结束的位置。原则上, 这便是水平显示结束的值减去上述常数。然而,水平取出开始应当 这样取值,使得水平取出结束寄存器减去水平取出开始寄存器的差 为上述常数的倍数。

水平垂直同步被确定为出现在若干行上的较宽的同步脉冲。这 些脉冲的宽度是由水平垂直同步寄存器确定的,该寄存器应编程为 :水平垂直同步=水平周期-(垂直同步宽度×时钟频率)。

视频/存储器控制器67也有大量垂直寄存器:垂直周期寄存 器、垂直同步寄存器、垂直消隐结束寄存器、垂直消隐开始寄存器 、垂直显示开始寄存器、垂直显示结束寄存器、视频中断寄存器及 光笔寄存器。垂直周期寄存器指定每一个场中的视频行数。垂直同 步寄存器确定生成垂直同步的行数。它应编程如下:垂直同步=垂 直周期-垂直同步行数。

垂直消隐结束寄存器确定一次垂直同步后消隐多少行。垂直消 隐开始寄存器确定垂直同步前消隐多少行。它应编程如下:垂直消 隐开始=垂直同步-垂直同步前消隐行数。

垂直显示开始寄存器确定有效视频的第一行。如果这一寄存器 大于垂直消隐结束寄存器,则其间的行显示边界色。为了将有效区 定位在屏面的中央,这一寄存器应编程如下:垂直显示开始=(垂 直消隐结束+垂直消隐开始-有效行数)/2。垂直显示结束寄存 器确定有效电视的最后一行。如果这一寄存器小于垂直消隐开始寄 存器,则其向的行显示边界色。为了将有效区定位在屏面的中央, 这一寄存器应编程如下:垂直显示结束=(垂直消隐结束+垂直消 隐开始+有效行数)/2。

视频中断寄存器确定在其中生成视频中断的视频行。这一中断 可通过INT寄存器允许或禁止。当视频机制停止在显示行的末尾 上时,便发生该中断。处理器可用它来改变显示模式或执行束同步 动作。该寄存器可在一个场内重新编程,以提供每一个场多次中断 。

A/V/CD控制器/协处理器32有一个光笔(或光枪)输 入。在这一输入的每个场的第一上升沿上,分别将水平计数与垂直 计数传送到寄存器LP0与LP2中。这些值能转换成所指向象素 的X与Y坐标。如果在这一场中出现了光笔输入的上升沿,便对寄 存器STAT的位1置位,紧接垂直同步之前,应读取这一寄存器 位。

下表中提供所示的各种显示格式的上述寄存器的典型值。将下 面的值加载在寄存器中之后,便通过设置寄存器MODE2中的 VIDEN位而启动视频定时发生器。     50Hz pAL     60Hz NTSC     VGA     320×256,       8-位             320×220     8-位     640×480     8-位 对钟频率     22.17MHz     21.48MHz     25.17MHz 水平周期     1418     1363     790 水平同步     1314     1262     703 水平消隐结束     126     103     48 水平消隐开始     1271     1232     688 水平显示开始     378     348     48 水平显示结束     1018     988     688 水平取开始     346     316     32 水平取结束     986     956     672 水平垂直同步     103     89     0 垂直周期     312     262     525 垂直同步     309     259     524 垂直消隐结束     20     15     34 垂直消隐开始     307     257     514 垂直显示开始     35     26     34 垂直显示结束     291     246     514

视频/存储器控制器67有三种可资利用的彩色分辨率:每一 象素4位、每一象素8位及每一象素16位。在4与8位模式中,象 素为逻辑色,它是存储在调色板中的18位物理彩色的索引。在 16位模式中,该象素为一个物理彩色,其中位0至4为兰色、位 5至10为绿色而位11至15为红色。由于绿色有6位,但兰色 与红色只有5位,所以从芯片输出的兰色与红色的最低位在16位 模式中永远为逻辑0。边界彩色是作为一个16位象素来显示的一 个16位寄存器。

在8位模式中,该象素寻址整个256×18调色板。在4位 模式中,该象素寻址调色板中的16个表目,在这一情况中,地址 的高4位由变址寄存器提供。

8位模式可利用两种变型。在彩色保持模式中,如果该象素取 值0,则显示前一象素的颜色。这可以用于通过设定最左面的象素 而填充大面积的彩色。

在可变分辨率模式中,最高位象素确定该象素作为一个7位象 素还是两个三位象素显示。如果该位是清除的,则该象素作为一个 7位象素显示;如果该位是设置的,则首先显示位0至2,随后显 示位4至6。在这一情况中,两个高分辨率象素寻址调色板的8个 表目。地址的5个高位是由变址寄存器提供的。可变分辨率模式对 于在分辨率较低但色彩更丰富的背景中显示高分辨率文字的小区域 是有用的。这一模式不能在每一象素一个时钟分辨率模式中使用。

在8位模式中,可以牺牲任何一位用于其它目的。例如,第一 位可用于冲突检测中来确定“热点”(hot spot)。另外,某几位 可用于编码图象“深度”从而一个图象可以移到另一个图象的前方 或后方。为了牺牲一位,在一个屏蔽寄存器中相同的位被置位,而 来自变址寄存器中的对应位取代掉该位。

有五种象素宽度:一个时钟、两个时钟、三个时钟、四个时钟 及五个时钟。这些时钟对应于围绕24MHz、12MHz与 6MHz的基本时钟(dot clock)。最高基本时钟可以不用于每 一象素16位显示模式。另外两种组合:一个时钟8位及两个时钟 16位只能用于配备了32位DRAM的情况。如果配备了外部硬 件,A/V/CD控制器/协处理器32能够同步锁定(GEN- LOCK)一个外部视频源并以象素挨象素的原则将本地视频与外 部视频混合(包在外面)。    

屏幕的存储器映象不受视频显示器宽度的限制而是可以独立定 义的。屏幕的基地址可位于系统存储器34中位何位置上。屏幕存 储器的宽度为从128至2048字节的2的幂。屏幕的高度为从 32K至2兆字节的2的幂。同一行上的视频地址在较小的边界内 卷动。这一配置允许屏幕放置在一个较大的虚拟屏幕中并在其中扫 视与滚动。

多个寄存器控制上面讨论的视频模式。视频模式寄存器控制上 面列出的特征。位0与1确定每一象素的位数。位2与3确定以时 钟周期表示的象素宽度。位4至6确定视频地址中的第一间隙,从 而决定以字节表示的显示器宽度。位7至9确定视频地址中的第二 间隙,从而决定以字节表示的显示器高度。位10将同步输出转换 到输入,它能复位水平与垂直定时器,用于快速锁定在一个外部视 频源上。位11控制“结壳”(encrustation),“结壳”即使用一 个外部视频多路转换器叠加一个外部视频源。该多路转换器是由A /V/CD控制器/协处理器的“INC”脚控制的。色彩中选 择若干位用于控制结壳。位12控制边界结壳,它与位11相同, 但只作用在边界色彩上。位13设定可变分辨率模式。位14设定 色彩保持模式,其中彩色0由当前扫描行中的前面的非0色彩替代 。位15根据位2、3与15启动3与5个时钟宽度的象素的模式, 如下表中所示。 位2 位3 位15 象素时钟 0  0  0 4个时钟周期/象素 1  0  1 2个时钟周期/象素 0  1  0 1个时钟周期/象素 1  1  0 未定义 0  0   1 3个时钟周期/象素 1  0  1 5个时钟周期/象素 0  1  1 未定义 1  1  1 未定义

视频/存储器控制器67还有一个象素屏蔽寄存器及一个调色 板索引寄存器。对于在屏蔽寄存器中设置的每一位,象素中的对应 位被来自变址寄存器的位所取代。变址寄存器中的高位构成四位象 素的调色板地址的高位部分。边界彩色寄存器是一个定义边界色彩 的15位寄存器。这一色彩是以与16位象素相同的方式显示的: 位0至4为兰色、位5至10为绿色而位11至15为红色。

视频/存储器控制器67还有两个定义系统存储器34中的 24位屏幕基地址的屏幕地址寄存器。这便是屏幕上左上象素的 地址。

视频/存储器控制器67还有一个辅助视频模式寄存器MODE2 ,它提供对视频与各种测试逻辑的附加控制。位0启动光笔寄存器 以便能读取水平与垂直计数器。位2启动视频定时器,位3与4确 定刷新频率,1表示时钟/128的刷新频率,2表示时钟/256 的刷新频率而3则表示时钟/512的刷新频率。大多数DRAM 要求64KHz或以上的刷新频率。刷新控制器一直等到需要8个 或8个以上刷新周期为止,然后请求副系统总线61并在RAS周 期以前进行所需要的数目的CAS。当设置了位6时,视频模式为 双重缓存的并且只能在消隐期间改变。CPU30设置此位用于在 分离屏幕操作中的清楚的模式改变。位7反转垂直同步的极性。位 8反转水平同步的极性而位9则不使用。

调色板为在RAM F10000H-F103FFH处的一 个256×18位的块。各项包含绿、红与兰中每一种的6位。每 一项延伸通过两个字。兰与绿的位出现在高位字上。红色的位出现 在低位字上。高位字的位2至7为兰色;高位字的位10至15为 绿色而低位字的位2至7为红色。为了在调色板中写入一个项, CPU30必须首先将红色位写入低位字中,然后将绿色与兰色位 写入高位字中。CPU30只能在电视上出现边界或消隐或斑点时 才能写入调色板。

高速缓存62不是本义上的为CPU30预取指令的一个高速 缓存。实际上,高速缓存62是位于F14000H至F143F FH的一个512×16位静态RAM,它能被CPU30用于变 量、栈或程序代码来加速程序的执行。它由静态RAM构成但不会 页面出错。将数据、栈或程序代码放在高速缓存62中能加快存取 并减少页面出错。在本实施例中,高速缓存是小的并且不允许在高 速缓存区中写入字节。中断服务侧程也不许压字节进栈。

视频/存储器控制器67支持6个中断源:视频输入中断、三 种模拟中断、CD块译码器中断、及一个DSP74中断。模拟中 断允许实现简单的模数转换器。由一个二极管、一个电容器及一个 电位计实现一个单稳态振荡器。电容器由垂直同步放电,并以取决 于电位计的设定的一种速率开始充电。当电容器上的电压达到对A /V/CD控制器/协处理器32的输入阈值时,便生成一个中断 。然后,处理器便能读取垂直计数器以得到电容器的充电速度,从 而得到电位计的设定值。

视频/存储器控制器67还有一个中断允许寄存器,允许独立 地允许或禁止所有六种中断。在中断确认写寄存器的任何一位中写 入一个逻辑“1”便清除了对应的中断。中断读寄存器反映所有等 待中的中断。

视频/存储器控制器67将80376CPU30的16兆 字节地址范围译码成下述存储器映象:8兆字节DRAMO(0H -7FFFFFH),7兆字节DRAM1(800000H- EFFFFFH),64K字节ROM0(F00000H- F0FFFFH),64K内部存储器(F10000-F1FFFFH),以及 一个896K的ROM1(F20000H-FFFFFFH)。 64K字节内部存储器中包括调色板RAM、阻击器(blitter) 寄存器、及DSP寄存器与存储器。调色板地址范围上面已指出。 阻击器寄存器位于范围F10400H至F107F H中。DSP 存储器位于F10800H至F18000H。

板上屏幕RAM及系统RAM是512K的DRAM。包括屏 幕/系统RAM的板上DRAM可以是16位或32位宽的。适用 的DRAM为东芝公司制造的TCS14170BJ256千字 节×16位存储器芯片。DRAM的大小是由A/V/CD控制器 /协处理器32在复位时确定的,但并不直接影响CPU30。

然而为其它候选总线主控器留下较多可利用的带宽可使视频/存 储器控制器67操作得更快。某些显示器与阻击器模式只可能用于 32位存储器。可以连接两个DRAM体,如上所述。如果连接少 量的DRAM,则它们在上面所示的整个存储器映象中重复。

引导ROM总是16位宽的。引导ROM包括两块由许多厂家 制造的27C512可擦除可编程只读存储器,从而给出128K 的引导ROM。在一次复位后,包含ROM与内部存储器的从 F00000H至FFFFFFH的一兆字节窗口在整个16兆字节 地址范围内重复。这使得多种处理器能用A/V/CD控制器/协 处理器32来引导。上述存储器映象是CPU30写入存储器式寄 存器时第一次采用的。视频/存储器控制器67可能时便在系统存 储器34上执行页式周期。它比正常的存储器周期更快,并且在连 续的读与写出现在同一页中时发生。视频/存储器控制器67需要 知道编程在存储器式寄存器中的DRAM的列数。在存储器式寄存 器中,位0与1确定DRAM中的列数,0表示256列,1表示 512列,2表示1024列,而3则表示2048列。

视频/存储器控制器67支持7种传输:一个正常的DRAM 周期(4个时钟),一个页式DRAM周期(两个时钟),ROM 周期(6个时钟),内部存储器(2个时钟),外部I/O(6个 时钟),中断确认(2个时钟),及内部I/O(2个时钟)。 CPU30以比实际传输多一个时钟周期的周期循环。内部总线主 控器能以传输时间为周期循环。

视频/存储器控制器67使用一个2X(两倍速度)CPU30时 钟并且是电视彩色副载波频率的倍数的一个晶体的晶体振荡器。这 一晶体时钟被缓存并输出到CPU30。将同一时钟除以2并将其 作为主系统时钟输出。这一时钟是通过一个独立的管脚输入到A/ V/CD控制器/协处理器32的。这样输出与输入时钟的理由在 于这样便能通过在两条路径之一上加上小的延时而在一个方向或另 一方向上调整CPU2X时钟与主系统时钟之间的相对时滞。晶体 频率还由一个可编程分频器分频,它能用一个1与15之间的整数 分频晶体频率,并生成一个带有均匀占空比的输出波形。这 是用作电视彩色副载波的。

色度分频器寄存器是定义电视彩色副载波(色度)对2X晶体 频率之比的一个4位寄存器。它应编程如下:色度=2X晶体频率/ 色度频率-1。

视频/存储器控制器67还有一个状态寄存器。如果设置了状 态寄存器位0,则应将视频定时设定为PAL(欧洲电视信号标准 )。如果清除了状态寄存器的位0,则视频定时应设定为NTSC 。如果设置了状态寄存器的位1,则当前场中有一次光笔输入。这 一位是由光笔设置而由垂直同步清除的。

在复位时,可将视频/存储器控制器置于这样一种模式,此后 它只响应两个字宽的I/O单元及64K存储器单元。I/O单元 的实际位置由一个芯片选择输入确定,从而这些单元可从外部确定 。这种“窥孔”模式允许A/V/CD控制器/协处理器32只占 用系统10的I/O与地址寄存器映象中的小的间隔。

寄存器是32位宽的,因此必须作为两次16位存取来存取。 为了寻址A/V/CD控制器/协处理器32中的所有I/O寄存 器,首先将所需的寄存器的正常I/O地址写入低位字(a [1] 低)中,然后便可在高位字(a[1]高)中读取或写入该寄存器 。为了寻址A/V/CD控制器/协处理器32内部与外部的所有 存储器,可将64K窗口移动到16兆地址空间中的任何64K边 界上,这16兆地址空间通常是由视频/存储器控制器67通过写 入存储体寄存器来译码的。存储体寄存器是一个8位寄存器,它在 窥孔模式中寻址存储器时提供最高的8位。例如,为了访问原先在 F10000H的调色板,CPU30必须在存储体寄存器中写入 0F1H,然后在由外部芯片选择所确定的窥孔位置的底部读与写 。

阻击器(blitter)70是一个图形协处理器,其目的为尽可 能快速地执行图形建立与动画(受存储器带宽的限制)。它执行由 CPU30与DSP74写入存储器的命令。通过从系统存储器 34中读取新的命令,它能执行任意长度的图形操作序列。当它正 在执行图形操作时,阻击器70便成为一个副系统总线61主控器 ,而拒绝CPU30的一切总线活动。这是合理的,因为阻击器 70正在用于执行本应由CPU30执行的操作,并且因此而加快 程序操作。这还消除了阻击器操作对任何同步控制编程的需要,以 及对阻击器70中任何中断生成硬件的需要。然而,为了允许其它 两个处理器(DSP74与密致盘DMA)之一的实时编程,阻击 器70可暂停其操作并将副总线61授予DSP74,或密致盘 DMA通道,如果它们需要DMA传输的话。在出现中断时,它还 将挂起自己,并将副系统总线61放弃给CPU30。在这些传输 的任何一次中,当前的操作被挂起,但在中断信号变成不活跃或者 在DSP74的DMA存取完成时将会重新启动。

最好将阻击器70的操作看成是一个简单的程序:

从存储器读取命令

for n=O to outer_count

从存储器读参数

for m=O to inner_count

if SRCEN then从存储器读源

if DSTEN then从存储器读目的地

将目的地写入存储器

next m

next n  CPU30或DSP74将命令与操作数写入存储器中。

阻击器70在A/V/CD控制器/协处理器32的I/O空 间中有若干寄存器:(1)两个可写的阻击器程序地址寄存器,它 们与两个可读的阻击器目的地寄存器共享同一个I/O地址;(2 )一个可写的阻击器命令寄存器,它与第一可读的阻击器源地址寄 存器共享同一个I/O地址;(3)一个可写的阻击器控制寄存器 ,它与第二可读的阻击器源地址寄存器共享同一I/O地址;(4 )一个可读的内部计数寄存器;(5)第一个可写的阻击器诊断寄 存器,它与一个可读的阻击器外部计数寄存器共享同一I/O地址 ;(6)第二个可写的阻击器诊断寄存器,它与一个可读的阻击器 状态寄存器共享同一个I/O地址;以及(7)第三个可写的阻击 器诊断寄存器。

阻击器70可以以多种模式操作来执行图形与块传送操作。阻 击器70具有一种分成三大独立块的内部体系结构:数据路径、地 址发生器及定序器。数据路径包含三个数据寄存器:源数据寄存器 、目的地数据寄存器及模式数据寄存器。数据路径还包含一个多功 能比较器来允许智能的阻击操作,及一个逻辑功能单元(LFU) 以生成输出数据。

地址发生器包含三个地址寄存器:它们是用于取阻击器命令的 程序地址寄存器、源寄存器与目的地址寄存器。它还包含一个带有 用来更新地址的相关联的步长寄存器的算术逻辑单元(ALU)及 一个用于生成输出地址的多路转换器。

定序器从软件方面说就是阻击器70所运行的程序,它带有两 个循环(一个内循环及一个外循环)及若干过程,如上面以简单的 程序所例示的。虽然其操作的各部分是根据阻击器命令寄存器中的 标志有条件地执行的并且循环计数也是命令的一部分,但该程序是 固定的。

数据路径包含三个数据寄存器及两个数据操纵块:能够以多种 有用的方法组合数据寄存器的内容以生成输出数据的逻辑功能单元 ,以及能够在数据上执行某些比较来禁止写操作,及有选择地停止 阻击器操作的比较器。

数据路径能够处理四种宽度的数据:32位、16位、8位与 4位。长字(32位宽)用于执行快速块传送及填充。象素(4、 8或16位宽)可使用所有的阻击器模式操纵,诸如绘线型、多平 面操作、字符绘制等。

大多数数据路径是16位宽的,它是最大的屏幕象素大小。然 而,源数据寄存器是32位宽的,而且不论逻辑功能单元的模式如 何,源数据寄存器的高16位是用于生成32位模式中写入的数据 的高16位的。从而,有两个16位宽的寄存器(模式数据与目的 地数据)及一个32位宽的数据寄存器(源数据寄存器)。源与目 的地数据寄存器是在内循环中启动对应的读周期时,从系统存储器 34中的源与目的地址中加载的。然而,所有这三个数据寄存器都 是在阻击器操作开始时带有模式数据加载的,它可用作生成输出数 据中或比较器中的附加数据源。例如,模式数据寄存器中的数据可 以是一个屏蔽、一个用于写入的模式或者一个参照值。模型数据是 加载进源数据寄存器中的两个字中的。

逻辑功能单元生成写入系统存储器34中的目的地中的输出数 据。它能执行源与目的地寄存器象素的任何组合。“源数据象素” 可选自源数据寄存器或数据模式数据寄存器二者之一。LFU选择 来自数据寄存器的两组输入数的四种布尔小项(A&B、A&B、 A&B与A&B)中任何一个,并生成两个所选择小项的逻辑“或 ”。这便允许输入数据的任何逻辑组合;从而存在着16种功能的 可能性。

在32位模式中,LFU通常是设置为生成源数据的,这是因 为它只有16位宽。在一个长字写入中写入的高16位永远是从源 寄存器的高16位中导出的。

比较器能在源、目的地、与模式数据寄存器中的数据上执行各 种比较。如果满足了其比较条件,它便生成一个禁止信号。该禁止 信号用于禁止一个写入操作,并且可以选择用于停止阻击器操作。 比较器也可用于为冲突检测及系统存储器34的搜索操作提供象素 位面效果以给出透明彩色,并作为字符绘制的一种帮助。

可以通过赋予每一个象素一个位面号来支持多位面操作。这一 模式只适用于4与8位象素。在8位象素模式中,8位中的两位( 位6与7)用于给定两或四个位面;而在4位(半字节)象素模式 中,四位中的一位(两个半字节中的位3与位7)用于给定两个平 面。如果目的地数据的位面号不等于或大于源数据的平面位,或者 它们的任何组合,比较器能生成一个禁止输出。这意味着正在写在 屏幕上的数据是被已经出现在另一位面上的数据屏蔽的。

如果整个源象素等于或不等于目的地象素时,比较器能生成禁 止输出。例如,这可用于在系统存储器34中搜索一个特定的值, 而更重要的是,用于指定一种色彩是透明的并将该透明的色彩值保 持在一个数据寄存器中。这适用于16、8或4位象素。

阻击器70还有一个比较器的位至象素扩展模式操作,这一比 较器操作允许诸如用于字符绘制的数据的位至象索扩展。在这一模式 中,比较器根据内计数器的值从源字节中选取一位并且在该位为逻 辑“0”时禁止写操作。

阻击器70作好处理三种象素分辨事模式的准备。它们是:每 一个字对应于一个象素的16位模式,每一个字节对应于一个象素 的8位模式,及每一个字节对应于两个象素的4位模式。在8与 16位象素模式中,数据路径每次处理一个象素,而操作是直截了 当的。然而,在4位象素模式中,只有从系统存储器中读出或写入 系统存储器的半个字节是当前的象素,因此,在数据路径上加上一 定的附加要求。在一次4位模式的写操作中,不变的目的地数据写 入不对应于当前象素的半个数据字节中。从而,在4位模式中必须 一直启动目的地读取(将控制位DSTEN置位)。因为没有在主 存储器中写入小于一个字节的方法,所以才必须这样做。

源4位象素地址与目的地4位象素地址也可能指向RAM中对 应的字节的不同的一半。如果这样的话,一个移位器交换源数据中 的两半。在4位模式中,模式字节的两个半字节(半个字节;4位 )通常必须设置成相同的值。注意,阻击器70中的程序中的象素 不必要与显示宽度匹配,并且传送大量数据的最有效方式是32位 模式。回想一下这种模式的传送必须是长字对齐的并且该系统必须 装有32位的RAM。

阻击器70还有一个地址发生器。该地址发生器包含三个地址 寄存器,一个增量或步长寄存器、一个地址加法器、及一个地址输 出多路转换器。这三个地址寄存器中保存源地址、目的地址及程序 地址。这些寄存器中每一个都是允许阻击器70寻址16兆字节的 24位寄存器。此外,源与目的地地址寄存器包含用于4位象素模 式的半字节位。程序地址寄存器保存取出的程序的地址,并且每当 用它执行了一个存储周期时便将它增加一个字。这一寄存器总是偶 数的,从而位0必须总是逻辑“0”。

源与目的地址每经过一个周期之后便能更新,而在其余时间, 则使用一个加法器而使它们对它们所指的目标具有相当的灵活性。 所有的源与目的地址更新都可以有选择地在地址寄存器的低16至 19位上执行。这说明阻击器70将有效地操作在64K、128K、 256K或512K页中。在这一模式中,如果一个地址在一页中 溢出,它将环绕而使上溢或下溢消失。

阻击器70还有一个地址加法器,它是一个用于更新地址的 25位宽加法器。它允许将一个常数值0.5、1、或2或者存储 在步长寄存器之一中的一个变量加在一个地址值上。它也能减去同 样的值。第25位便是上面所述的地址的半字节部分。取决于当前 的屏幕分辨率的设置,一个象素的增加在地址上具有不同的效果。

所有地址寄存器都是在适当的存储周期结束时自动更新的;源 地址寄存器在“源读取”周期,而目的地址寄存器则在“目的地写” 周期。可使用阻击器命令中的SWRAP与DWRAP位使地址垂 直环绕,以及使用阻击器控制寄存器中的SLWRAP与DLWRAP值 水平环绕。

地址输出多路转换器向系统存储器34提供外部地址。它提供 三种地址:源地址、目的地址及程序地址。这些地址是直接从对应 的地址寄存器中导出的。

当阻击器70正在绘线时,地址寄存器是以与正常方式不同的 方式使用的。目的地址寄存器用作绘线地址,而源地址寄存器与步 长寄存器则分别用作δ1与δ2。在绘线中,从δ1减去δ2,所 产生的借位输出判定在目的地址寄存器上加上什么。进一步的细节 请参阅下面有关绘线的部分。

阻击器70还有一个控制阻击器70的操作的定序器。控制流 最好在两级上来考虑。外循环管理总的控制流而内循环则执行实际 的阻击(blitter)或绘线操作。外循环中的三部分为:命令读 取过程、参数读取过程及内循环。

内循环执行实际的阻击或绘线操作。一个内循环周期可包含多 达三个存储周期。它们是从源地址中读取、从目的地址中读取及写 入目的地址。所有三个周期都是可选的。如果该循环中包含一个源 读取、或者一个源读取与目的读取,则在目的地写入出现之前先测 试比较器禁止机制。这使得在满足比较器禁止条件时能够绕过写周 期。当满足比较器禁止条件时,便有可能令当前的操作停止并将控 制返回给CPU30。然后,程序可以检测地址寄存器来判定出现 禁止的位置,从而可执行冲突检测。然后,CPU30可判定是否 要恢复操作或放弃它。内循环执行操作一直到内循环计数器到达零 为止。内循环计数器是一个10位计数器,因此,内循环能重复 1至1024中任何次数。

在出现比较器写禁止时阻击器70通过允许操作停止来为冲突 检测作准备。当这一情况出现时,控制便返回给CPU30,然后 CPU30检验阻击器70的内部状态来判定什么事件导致了这一 冲突。在这一点上,CPU30可选择允许阻击器70恢复其正在 执行的操作,或者可将其复位到其空闲状态。在阻击器70可用于 其它操作之前,必须发布一条复位或恢复命令。注意,当阻击器 70处于暂停状态中时,一个新的值可能被写入命令寄存器中,从 而禁止冲突停止机制。

参数读取过程是一个非常直接的序列,它将一组新的参数加载 到内循环中。它顺序地从存储器中读取内循环计数器值、步长寄存 器值、以及用于预制数据寄存器的模式值。内计数实际成为内循环 执行的次数。步长寄存器用于地址增量,而模式寄存器则用于数据 操纵。

参数读取过程是在阻击操作开始时作为命令读取过程的一部分 调用的,并且也在阻击操作需要时调用,如由PARRD控制位所 确定的。额外的参数读取出现在内循环的传送之间以允许参数迭代 ,从而允许诸如不规则形状涂色及行程编码数据的解压缩等操作。

命令读取过程用于启动一个新的阻击操作。阻击器70从一种 不活跃的复位状态启动,该状态表示阻击器70的正常的非活跃状 态。从这一状态执行一个命令寄存器写入来启动阻击器70,在这 之前通常是对程序地址寄存器写入一次。将一整组操作参数从自动 增量的程序计数地址装入,并将控制从命令读取循环中转出。在完 成了一次阻击操作时,便从程序计数地址读取一条新的命令,而如 果这一命令将阻击器70留在运行模式中时,则加载一组新的参数 并启动另一次操作。否则阻击器70进入其停止状态并将副系统总 线61返回给CPU30。上述机制使阻击器70能够执行任意长 度的图形命令而不需要任何处理器介入。这是极为有用的,因为与 阻击器存储器读取相比,处理I/O写周期是相对地比较慢的。

外循环的正常操作在从命令读取循环退出时开始。然后进入参 数读取循环来读取第一组参数,并在操作开始前在内计数器加载了 其初始值后进入内循环。然后将外计数器减一,并当它为零时进入 命令读取循环。然后,用步长寄存器的内容更新寄存的源地址与目 的地址两者或其中之一。然后在再度进入内循环之前,有选择地进 入参数读取循环来更新各种内循环参数。这两种循环使阻击器70 能够以二维屏幕结构来不断进行操作,外循环地址寄存器的更新将 屏幕地址指针移至下一行的结构的起始点上。使屏幕结构参数能在 逐行的基础上加以改变,参数读取循环提高了灵活性。

阻击器70还有一个存储器接口状态机,它控制所有存储器周 期的周期定时生成及总线仲裁。阻击器70在一个阻击器命令序列 的持续时间中从CPU30接管副系统总线61的控制权。这会造 成上面所讨论的总线交接的等待时间,但一旦阻击器70接管了副 系统总线61,便立即开始操作。在较佳实施例中,当A/V/ CD控制器/协处理器中的任何设备具有了对副系统总线61的控 制时,阻击器70便允许CPU30访问盒式ROM50及高速缓 存62。然而为了简化,作为替代,当CPU30不再是副系统总 线61的主控设备时,阻击器70也能使CPU30停机。

存储器接口在DSP74或密致盘读取通道之一请求副系统总线 61时,并在完成任何当前的存储器周期之后便立即将副系统总线 放弃给它们中的一个。

除非在阻击器控制寄存器中受到屏蔽,中断也将使阻击器70 暂停操作。阻击器70检测中断线本身并用它来暂停操作。一旦中 断线恢复到其原先的状态,便立即恢复操作,这出现在CPU30 写入确认端口时。这不一定是中断服务例程的结束。因此,程序员 必须谨防堆栈混乱,并且在一个服务例程中通常应保持禁止中断。 一旦中断线被清零且无来自CPU30的介入,阻击器70便立即 恢复操作。阻击器70只响应内部中断源(视频中断、模拟输入中 断与密致盘中断)。任何外部CPU中断源对阻击器70没有影响 。

阻击器70具有多种操作模式。阻击器70执行的最简单操作 涉及将一块系统存储器34复制到另一块上以及用一个预定的值来 填充一块系统存储器34。这些操作可在系统存储器34的线性部 分上及在任意的屏幕矩形上执行。如果这是一次复制操作,则目的 地数据寄存器用作被修改的系统存储器34的地址,而源地址寄存 器则用作被复制的数据的地址。

当操作要在存储器的线性区域上执行时,大多数地址控制位将 被设置为零。不使用步长寄存器,唯一的要求是适当地设置DSIGN 与SSIGN来确定用地址增加还是地址减小来进行复制。注意,如果 未设置符号位,则放置在地址寄存器中的初始值应为在其上执行操 作的区域的底部,而当设置了符号位时,更应为顶部。在这两种情 况中,读出或写入的第一个象素将是针对第一个地址。操作长度将 放置在内计数器中,而外计数器则设定为一。

如果正在其上操作的块非常之大,则可能有必要使用内循环与 外循环计数器两者,而在其上操作的象素的数目则将由内外两个计 数器值的积给出。当源与目的地数据两者或其中之一为矩形而不是 线性区域时,则内循环计数器中包含矩形宽度而外循环计数器中则 为矩形高度。

将适当的步长寄存器设置为从矩形的右侧绕到下一行的左侧的 地址增量。根据源或目的地是否为矩形来设定SRCUP与DSTUP位。在 每一象素8位或8位以上的模式中,既不用SRCEN也不用 DSTEN来填充存储器,对于存储器复制应设置SCRCEN位 。在4位象素模式中,一直必须设置DSTEN,从而执行一个目 的地读取而防止破坏其它象素。注意,使用这一方将比不用时为慢 。

阻击器70根据著名的数字微分分析器(DDA)算法绘线。 这一算法的基础是,对于一条给定的线,对于每一个给出的象素, 其X地址或Y地址中的一个总是增加的,而当满足适当的算术条件 时,则另一个也是增加的。阻击器70通过重复地从一个工作值中 减去dx或dy中的较小值并在出现下溢时加上较大值这种方法 来计算导致有条件增量的算术条件,实际上使用除法来计算斜率。 记号“dx”表示该线段所对应的X轴上的长度并且是由|(x1 -x2|给出的,其中x1与2为两点的X坐标,而竖道则表示它 们之差的大小即绝对值。从而,如果从(x1,y1)画一条线到 (x2,y2),则dx=|(x1-x2)|而dy=|(y1- y2)|。从它们中,D1(上面称作δ1)由dx与dy中的较 大者给出,而D2(上面称作δ2)则由较小者给出。则对于所绘 的每一个象素,从初始设定为D1/2的工作值中减去D2,而这 一减法的结果的符号(指示下溢)便是屏幕地址更新的条件部分的 算术条件。当这一下溢出现时,便在工作值上加上D1的原来值。 可以看出dx对dy之比将给出这一下溢与回加的出现次数。当然 ,它们之间的比便是该线的斜率。

在阻击器命令中设置用于建立一条线的绘制的值的方法如下: 该线的起点便是目的地址,将D1放置在源地址寄存器的位10至 19中,并将D1/2放置在位0至9中。虽然在要给出该线的两 个端点时应当使用D1加1,但D1也是内计数器的值。D2是放 置在目的地步长寄存器中的。如果DX大于DY则设置YFRAC 标志,否则将其清零。SSIGN给出X地址更新的符号,DSIGN 给出Y地址更新的符号。

在绘线时,在计算线地址时占用了地址部分中的所有寄存器; 因此在绘线时,阻击器不能够从其它任何地方移动数据。因此,写 在线地址上的数据必须是根据逻辑功能单元直接由模式数据给定的 或者是由模式寄存器及已经在那里的数据组合而成的。因此,不要 设置SRCEN,否则阻击器可能生成看起来随机的数据。在绘线 时,内计数器是设置成线的长度的,而外计数器则设置为1。在每 一象素8或8位以上的模式中,除非用于读-改-写操作,不需要 设置DSTEN。在每一象素4位的模式中,则必须一直设置 DSTEN,以免目的地读取时破坏其它象素。

阻击器70还具有在一次单一的操作中在屏幕上绘制字符的能 力。就阻击器70而论,字符绘制涉及绘制宽达8个象素及任意高 度的一个矩形区域。在这一区域中的象素根据一种位模式或者写入 或者保持不变。这一模式不限于字符绘制,也可用于放大作为一个 单色位面存储的任何图形。

在字符绘制中,源寄存器寻址通常作为字型的一部分的位模式 ,其中各字节对应于字符的一行。从而,阻击器字体可以宽达8个 象素,然而也可采用更宽的字体,只是绘制一个字符需要一次以上 的阻击器绘制操作而已。字符绘制主要是将一个块从位于系统存储 器34中的字符字型传送到目的地址。

数据是这样排列的,对应于最左边的象素的位在最低有效位中 ,而一个字符的顶部在最低地址上。如果数据宽度小于8个象素, 则不使用字体数据的最低有效位。

目的地址寄存器用于寻址要绘制字符的屏幕区域。通常这一区 域已被上一次阻击器操作清成所要求的背景颜色。将目的地址初始 化成字符的左上角。要绘制的字符为一个矩形,因此,相应地对目的 地址进行编程。将内计数器设置成字符的宽度,而将外计数器设置 成其高度。目的地步长寄存器设置成屏幕宽度减去字符宽度。 DSTUP位用于允许每次通过内循环时更新目的地址。

设置内循环控制位DSTEN与SRCENF,SRCENF 存在的原因便是字符绘制。这使得每一行的字型字节只读出一次 。比较器用于控制象素的绘制,因此置位CMPBIT控制位来启 动其位至字节的扩展机制。

要涂的彩色是作为模式设置的,并且它通常保存在模式数据寄 存器中。在4位象素模式中,置位DSTEN,并且目的地数据寄 存器将保存读取的值,从而使该字节的另一半可以不受干扰地写回 去。源数据寄存器保存字体模式,如上所述。    

阻击器旋转与比例模式使用描影(shadinq)ALU,但不是 生成三个基于DDA的数据值,而是生成两个基于DDA的地址值 X与Y。通常这两个值用于在任意角度与比率上横切一个源数据域 ,从而使目的数据对应于一个成比例缩放与/或旋转过的变体。

红色值发生器给出X值,而绿色值发生器给出Y值。不使用兰 色值发生器,显然描影不能结合这一模式使用。因为旋转要求比描 影更高的精确度,所以在X与Y值上加上4个附加的整数位。这些 位设在旋转寄存器0和旋转寄存器1中。所有的计算都是执行到 10位精度的。

如描影一样,在内循环中画完每一个象素之后将δ值加到X与 Y上。在外循环中加上步长值,并且为了加上它们而必须设置 SRCUP与DSTUP标志。δ与步长值可以是正的或负的,并 且与描影模式不同,不会出现加或饱和。

通常,转动与比例是通过将目的地址指针设置为在目的矩形上 执行正常光栅扫描而进行的,同时使源指针以一个适当的斜率与比 率横切源数据。这保证目的数据是连续的,并且不要求不必要 的阻击(阻击器操作)。如果目标区域不是矩形的,则源数据应当 用一种透明的颜色包围。

一条阻击器命令是作为存储器中的一个数据表给出的。阻击器 70将表的内容加载在其寄存器中并执行指定的操作。阻击器70 将接收相继的命令组直到将一条停止指令读入命令寄存器为止。

阻击器程序地址必须在发出命令字之前设定,阻击器程序地址 是由程序地址寄存器给出的,它们在一起形成完整的24位地址。 程序必须位于字边界上。

一个完整的阻击器命令数据表以一个命令字开始。然而,一个 序列中的第一条阻击器命令的命令字是由CPU30的一个I/O 周期写入命令寄存器的;从而,阻击器命令从第二个字开始读取命 令数据。同样,最后一条阻击器命令要求由运行位清零的不多于一 个命令字构成。

一条阻击器命令的形式为许多命令位与控制位、一个24位源 地址、一个24位目的地址、一个10位外计数值、一个10位内 计数值、一个12位带符号的源步长、一个12位带符号的目的步 长、及一个15位模式值。如果设置了SHADE(涂色)位,则 取出9个附加的字:红、绿与兰初始值(6个整数位及10个小数 位),红、绿与兰δ值(同上)以及红、绿与兰步长值(同上)。

命令位如下。设置运行(RUN)位令阻击器70开始操作。 它用于写入作为一个I/O端口的命令寄存器来启动阻击器70读 取一条命令时。如果阻击器70加载了一条作为所读取的命令的一 部分的运行位被清零的命令,操作便停止。如果出现冲突(写禁止) 便设置COLST位令操作停止。从此时起,CPU30可恢复或中断 印刷操作,并可读取多种内部寄存器。每当从内循环中退出而外循 环尚未到达零时,设置PARRD位要求阻击器70从程序计数器 地址读出一组新的参数。从内循环中退出而外计数尚未到达零时, 设置SRCUP位要求将步长寄存器的内容加到源地址上。从内循 环中退出而外计数尚未到达零时,设置DSTUP位要求将步长寄 存器的内容加到目的地址上。设置SRCEN位在内循环中启动源 地址读取。这也令源地址寄存器按象素大小增加。设置DSTEN 位在内循环中启动目的地址读取。这并不影响目的地址寄存器,它 是作为目的地写周期的一部分而增加的。当第一次进入内循环而不 是以后进入内循环时,设置SRCENF位令源地址被读取。这是 一种特殊情况的SRCEN,并且与字符绘制模式相关,如上所述 。如果设置了SRCEN则SRCENF便没有影响。两位PSIZE 0与PSIZE1选择象素大小,0至3分别对应于4、8、16 与32位。如上所述,32位只用于32位系统中的数据移动。两 位WIDTH0与WIDTH1选择以字节为单位的屏幕宽度,0 至3分别对应于256、512、1024与2048字节。设置 LINDR将阻击器70置于线绘制模式中。这一模式使用源与目 的地址寄存器来生成线绘制地址,它可用于读与写两者。设置 YFRAC位指示阻击器70其X与Y地址在线绘制模式中具有小 数增量。如果Y地址具有小数增量便设置它。设置PATSEL位 选择模式数据寄存器来替代源数据寄存器作为对逻辑功能单元的源 输入。这一位是与字符绘制相关的,其中源数据寄存器中包含字体 数据,而模式数据寄存器中包含印色颜色。设置涂色位启动从涂色 ALU的输出作为写入数据。这一位只在8与16位象素中有效。

阻击器70有若干种控制位:源控制位、目的地控制位、逻辑 功能控制位、及比较器控制位。阻击器70具有几个源控制位。 设置SWRAP位令源地址更新在一个可编程的边界上卷回,这是 与线性通过存储器不同的。位SWRAP0与SWRAP1控制 SWRAP功能的规模,它使源地址指针垂直地卷回,0至3分别 对应于64K、128K、256K与512K屏幕。设置 SRCCMP位选择源数据寄存器作为对比较器的源输入。如果 它被清零,则使用模式数据寄存器。设置SLWRAP寄存器使 源指针在行宽度内卷回以用于内循环更新。设置SSIGN位设 置了在更新源地址时所采用的符号。设置它令源地址减小而不是增 加。这一位在线绘制中使X成为负的。

阻击器70还有若干目的地控制位。设置DWRAP位令目的 地址更新在一个可编程的边界上卷回,这是与线性地通过存储器不 同的。位DWRAP0与DWRAP1控制DWRAP功能的规模 ,它使源地址指针垂直地卷回,0至3分别对应于64K、128 K、256K与512K屏幕。设置DSTCMP位选择源数据寄 存器作为对比较器的源输入。如果将它清零,则使用模式数据寄存 器。设置DLWRAP寄存器使源指针在行宽度内卷回,用于内循 环更新。设置DSIGN位设定了更新源地址时所采用的符号。设 置它时令源地址减小而不是增加。这一位在线绘制中使Y成为负的 。

阻击器70还有逻辑功能单元控制位。逻辑功能单元控制在一 个目的地写入周期中写入的数据。LFU(逻辑功能单元)允许源 与目的数据的任何逻辑组合。这是通过用LFU位LFU0至LFU3中每 一个选择小项之一来达到的,而输出则是由所选择的项的逻辑“或 ”来给出的。一个“0”值对应于“非”源与“非”目的地,“1” 对应于“非”源与目的地,“2”对应于源与“非”目的地,而“ 3”则对应于源与目的地。因此,一共有十六种可能性。

阻击器70还有若干比较器控制位。设置CMPPLN起动位 面模式,其中三个比较器功能操作在位面号位上,而不是在整个象 素上。设置CMPEQ位,则如果在位面模式中目的地象素的优先 级等于源象素的位面优先级,或者如果不在位面模式中整个象素是 相同的时,令比较器禁止内循环写。设置CMPNE位,则如果在 位面模式中,目的地象素的优先级不等于源象素的位面优先级,或 者如果不在位面模式中,整个象素不相同时,便令比较器禁止内循 环写。设置CMPGT位只在位面模式中适用,并且如果目的地象 素的位面优先级大于源象素的位面优先级时,则令比较器禁止写。 设置CMPBIT给出一种位到字节扩展方式。它通过使用一个内 计数器选择源数据寄存器中的一位而令比较器生成一个禁止,并且 如果所选择的那一位是“0”时生成一个禁止。内计数器中给出8 时选择位0,7时选择位1,6选择位2,以此类推。

程序地址寄存器指向阻击器操作命令的源。从其中顺序向上由 存储器中读取数据。它必须总是偶的(即阻击器操作必须位于字边 界上)。寄存器0对应于地址位0至15,而寄存器1对应于地址 位16至23及位0至7。

上述阻击器寄存器中的某些是在CPU30的I/O空间中可 见的。此外,CPU30是可以访问某些阻击器状态及控制位的。 如上所述,阻击器70有7个字宽读取寄存器及4个字宽写入寄存 器。写入寄存器中任何未使用的位应写入“0”。I/O寄存器从 I/O地址40H开始。这些寄存器原则上也可在存储器映象中得 到,因此DSP74能够访问它们,从与I/O相同的位移开始, 但在基地址F10400H上(即,减去40H及加上F10400H来 得到存储器地址)。第一阻击器目的寄存器对应于目的地址寄存器 的位0至15。第二阻击器目的寄存器的位0至7对应于目的地址 寄存器的位16至23。而第二阻击器目的寄存器的位15对应于 目的地址寄存器的目的地址半字节部分。第一阻击器源寄存器对应 于源地址寄存器的位0至15。第二阻击器源寄存器的位0至7对 应于源地址寄存器的位16至23,而第二阻击器源寄存器的位 15对应于源地址半字节部分。阻击器内计数器的位0至9对应于 内计数器值。阻击器外计数器的位0至9对应于外计数器值。阻击 器状态寄存器给出各种阻击器状态信息。位0指示满足比较器位面 优选级大于条件。位1指示满足比较器位面优先级等于条件。位2 指示满足比较器位面优先级不等于条件。位3指示满足比较器象素 相等条件。位4指示满足比较器象素不等于条件。位5指示满足比 较器位到象素条件。位13对应于运行位,它说明阻击器当前是活 跃的,还是操作被一个CPU中断或冲突停止所暂停的。位14指 示阻击器为一个CPU中断所停止。位15指示阻击器由于一个冲 突检测而停止。阻击器程序地址寄存器加载有阻击器程序地址的位 O至15。回想一下,由于阻击器程序必须位于字边界上,所以该 寄存器的位0总是0。第二阻击器程序地址寄存器位0至7中加载有 阻击器程序地址的位16至23。其余8位为0。阻击器命令寄存 器对应于阻击器命令的字0,并用于在启动阻击器时建立命令。然 后,阻击器DMA从命令的第一个字开始。

阻击器控制寄存器有三位:位0为屏蔽来自阻击器的总线控制 单元的中断的一个中断停止屏蔽,当设置了这一位时其结果是在 出现中断时阻击器将不停止;位1在一次冲突之后令阻击器恢复操 作并用于在检测出一次冲突之后重新起动阻击器。回想一下,当设 置了COLST位时便检测到一次冲突。阻击器恢复被暂停的操 作。注意,当阻击器在冲突停止状态中时,有可能重新编程阻击器 命令寄存器,因此COLST位与其它位一样可被改变;而位2则 在冲突之后将阻击器复位到静止状态并用于中断出现冲突停止时阻击 器正在执行的操作。注意,在出现一次阻击器冲突停止之后, 必须向阻击器发送一个恢复或一个复位命令。阻击器70还有三个 转动寄存器。位0至3对应于X地址的整数部分的高4位,该10位 值中的低6位为红色值的整数部分。位4至7对应于X增量的整数 部分的高四位,这一10位值的低6位红色值的整数部分。位8至 11对应于X步长的整数部分的高4位,这一10位值的低6位为 红色值的整数部分。第二旋转寄存器的位0至3对应于Y地址的整 数部分的高4位,这一10位值的低6位为绿色整数值的整数部分。 位4至7对应于Y增量的整数部分的高4位,这一10位什的低6 位为绿色整数值的整数部分。位8至11对应于Y步长的整数部 分的高4位,这一10位值的低6位为绿色整数值的整数部分。在 第三旋转寄存器中,设置位0令转动地址取代目的地地址。设置 位1令旋转地址取代源地址。设置位2设定旋转模式,这与描影模 式不同。而位10至15对应于旋转地址的高位。

DSP74声频协处理器是一个具有足够能力来实现一个高性 能音乐合成器的通用算术协处理器。它提供了同步串行输出以生成 具有16位精度的立体声声频信号,给出一种通常与密致盘技术相 关联的音质。DSP74是可以从主CPU30编制微程序的,并 且其指令集是充分灵活的,使用户能够将该设备编程为完成许多与 “音乐合成器”十分不同的多种不同功能。这些应用中可包含算法语 音生成,使用快速傅里叶变换技术的声频分析,以及三维图形旋转 。 DSP74使用哈佛体系结构(单独的程序与数据总线)以求得 到最大的数据吞吐量。DSP74有一个算术逻辑单元(ALU) 。

ALU具有以16位X16位硬件乘法/累加硬件结构以及加 法、减法与逻辑功能。还有一个独立的串行除法单元,它每一节 拍生成一个商数值。来自加法器/减法器的进位存储在一个独立的 锁存器中,并能用于为多精度算术运算传播进位或者能用于条件指 令。可以使所有指令依赖于这一位的设置。该设备内的数据传送都 是16位宽的,只有乘法器/累加器内的内部事务处理是例外。

DSP74是一个主要旨在用于声音合成的非常简单、非常快 速的处理器,但也能完成上述其它计算任务。它以一个处理器周期执 行所有的指令;这些指令是以系统时钟速度(通常20至23兆赫 )执行的。在声音合成中,DSP74的定时由声频数模转换器( DAC)接口中的定时器控制。这些DAC是双缓存的,并且当一 个DAC写快要导致溢出时,便暂停操作直到缓冲器变空为止。只 要软件以采样速率执行循环,以及只要平均循环时间小于采样周期 ,则偶尔的循环可以延长到两倍。因为循环中可能包含较程序RAM 中能容纳的更多的指令,DSP74有一种变址寻址模式,它允许 相同的代码片作用在若干语音上。

DSP74一个哈佛(Harvard)体系结构设备,从而程序 RAM与数据RAM是分离的,同时在两个RAM块上出现周期信 号。采用了一条单周期的流水线;因此,在每一个时钟周期中发生 两个事件:取出一条指令,以及发生与前一条指令相关联的数据传 送。这在执行一条跳转后的指令时会有奇怪的效果。DSP74有 两个算术逻辑单元(ALU,未示出):一个典型的ALU及一个 乘法/累加ALU,若干寄存器:一个X操作数寄存器、第二操作 数寄存器、一个AZ寄存器(它保存来自ALU的结果),以及一 个MZ寄存器(它保存来自乘法/累加寄存器的结果)。DSP74还 有一条DMA通道及一个除法器。

DSP74的操作是相当简单的。在一条指令的执行的第一个 时钟节拍信号中,从程序RAM中将操作码读入指令译码器中。在 第二个时钟节拍信号中,当从程序RAM中读取下一条指令时,根 据第一条指令执行从系统存储器34至一个寄存器或者从一个寄存 器至系统存储器34的一次数据传送。

DSP74内的ALU为一个16位算术逻辑单元,它具有本 技术中众所周知的与德克萨斯仪器公司的74181相同的功能。 普通的算术运算是作为指令编码的;不寻常的指令可通过直接设定 ALU模式位用通用算术指令(GAI)来执行。

DSP74还有一个乘法器/累加器,它是用于执行16×1 6带符号/不带符号的乘法并产生32位结果的第二ALU。除此 以外,它也可执行乘法/累加运算,其中将乘得的积加在前面的结 果上。结果累加到36位并容许溢出。乘法器运算实际上要用两个 时钟节拍,虽然乘法指令本身是在一个时钟节拍中完成的。这意味 着,乘法或乘法累加后面的指令不得涉及MZ寄存器或X寄存器。

DSP74还有一个除法器。除法单元呈现为DSP74内部 空间中的一组寄存器。它能对16或32位操作数执行无符号除法 ,并生成一个商及一个余数。

DSP74还有一条DMA通道。该DMA通道呈现为DSP 74数据存储器空间中的一组寄存器。它们是两个地址寄存器与一 个数据寄存器。一个DMA传送是由在两个地址寄存器中的第一个 中写入一个地址而启动的。DMA传送具有一个等待时间间隔,它 必须在执行进一步DMA之前消耗掉。DMA状态机负责请求副系 统总线61,并且当它被授权时才执行传送,此后便释放副系统总 线61。

作为替代,可在两个地址寄存器中的第二个中写入设置了的一 个保持位的一个字。这将请求副系统总线61并一直保持它直到该 保持位被清零为止。这种DMA传送在执行连续的多次传送中是高 效的,但对于单个的传送通常比较低效,因为DSP74程序不能 判定何时授予副系统总线61,因此必须等待最长的可能等待时间 。DSP74存储器通常在DSP的内部数据地址基址与主地址基 址中是可见的。

DSP74具有一个与之相关联的DSP存储器76。DSP 存储器76包括程序RAM、数据RAM、一个寄存器/常数表及 一个正弦ROM(都未示出)。DSP存储器76通常在DSP的 内部地址空间及系统存储器34的地址空间中可以访问。DSP程 序RAM为512个18位字。这些单元只能由CPU30写入, 而对于DSP74来说只程序可读。程序RAM并不出现在DSP 内部地址空间中。在DSP74正在运行时,主机是不能访问程序 RAM的。每一条DSP指令有一个7位操作码及一个11位地址 矢量。所有微码的指令(除乘法或乘法/累加操作之外)都在185 毫微秒周期内完成。所有的指令都是系统存储器34至寄存器的传 送或者寄存器至寄存器的传送;立即值是不允许的。从而,如果一 条给定的指令需要一个常数,它不能从常数表中得到,而必须为该 值留出一个数据RAM单元。DSP74也允许条件指令及变址。 如果设置了指令码的位12,则只有同时设置了ALU中的进位位 时才能执行该指令。如果设置了指令码中的位11,则将指令码中 的9位地址矢量加在变址寄存器中的9位值上以生成该指令在其上 操作的地址与数据存储器。附加的两位是通过将值加载在一个附加 位寄存器中然后将该字写入所要求的单元中而编程的。

DSP74具有许多移动命令,它们在寄存器内、存储器内、 存储器与寄存器之间传送数据,还有一些其它命令,其中包括加、 减、“与”、“或”、带进位的加、NOP操作(空操作)、上述 GAI及一条INTRUDE(侵入)命令,该命令允许CPU30访 问DSP存储器76。

正弦ROM为256个16位字的一个完整的正弦波的2的补 码正弦波值。

数据RAM为512个16位字。

数据可以在DSP74的控制下或者在主CPU30的控制下 ,在CPU30与DSP74之间传送。

DMA传送机制是基于DSP74成为副系统总线61的总线 主控器并访问系统存储器34的。DSP74是最高优先级总线 主控器之一,因此,当当前总线主控器能够放弃副系统总线61时 ,它便立即将副系统总线61授予DSP74。放弃副系统总线 61的最坏情况便是当CPU30为总线主控器的情况,因为 80376或80386SX处理器可能需要可观的时间量来释放 副系统总线61。DMA传送是由写入第一DMA地址寄存器来启 动的,如上所述。状态信息及高地址部分的传送应当已经写入第二 DMA地址寄存器中;在写传送情况中,类似的写入数据应当已经 写入DMA数据寄存器中。在启动一次传送时,DSP74请求副 系统总线61并在将副系统总线61授予了DSP 4时,DSP 74便执行传送,然后释放副系统总线61。可以查询这一操作的 完成,或者程序员可以选择在使用读取数据与/或启动另一次传送 之前允许经过最大可能等待时间。

可以使用两个DMA地址寄存器中的第二个的保持位来执行第二种 总线捕获技术以请求副系统总线61。如果DSP74希望连续地 执行多次传送时,这将是更为高效的,因为在传送之间是不释放副 系统总线的。在DSP74将要释放副系统总线61之前,必须先 将第二DMA地址寄存器中的保持位清零。一般不推荐这一机制, 因为DSP74将控制副系统总线61相当长的时间间隔而无所事 事,这会浪费总体存储器总线带宽并可能潜在地干扰CD DMA 传送。如果使用第二种技术,DSP74在执行任何DMA传送之 前必须首先请求副系统总线61。它无法检测是否已获得副系统总 线61,因此必须等待最大数量的总线指令。一旦DSP74得到 了副系统总线61的拥有权,然后它便可以进入执行总线周期。它 可执行任意序列的读与/或写周期,而在结束这些周期时必须放弃 对副系统总线61的控制。

数据传送也可在主CPU30的控制下在CPU30与DSP 74之间执行。DSP74的所有内部存储器都映射到主地址空间 中。当DSP74处于停止模式中时,主CPU30可以象对正常 的系统存储器34中那样写入程序存储器单元中。然而,当DSP 74正在运行时,主CPU30是不能访问程序存储器的。DSP 74数据存储器只能被INTRUDE(侵入)机制获得。为了保 证DSP74的操作在任何情况下不受干扰,数据事务处理只能在 DSP74正在执行INTRUDE指令时进行。当DSP74停 止时,便认为它实际上正在继续不断地执行INTRUDE指令。

只有当DSP74不运行时,才能使用阻击器70执行CPU 30至DSP程序RAM76的传送。同样,当DSP74正在运 行时,阻击器70不能访问DSP数据RAM。简言之,只有当 DSP74执行一条INTRUDE指令时,阻击器70与CPU 30才能修改DSP程序RAM76。

DSP74能令阻击器70执行从系统RAM至DSP程序 RAM的非常快速的DSP代码的块移动。从而,DSP74与阻 击器70能够合作来有效地向DSP74提供比实际能够得到的更 多的程序RAM。

DSP74还有一个串行声频数模转换器(DAC)接口,串 行DAC接口允许DSP74驱动一个同步串行(I2S或类似的 )DAC,以及从诸如CD驱动器之类的同步串行数据源输入数据 。如果没有连接输入设备,则接口定时可以内部生成,但是如果存 在一个数据源,则必须用它来确定定时。一个内部溢出检测器防止 在前面输出的数据全部输出之前DSP74写入DAC。这是通过 写入两个DAC寄存器中的第一个来管理的。因此,DAC传送应 采取下述方式:写入第一DAC寄存器,写入第二DAC寄存器, 读取输入值。它们必须紧密连接地执行(少于16条指令)。没有 下溢检测,如果出现下溢时,则再次输出前面输出的值。DAC值 是双缓存的,因而虽然声频码是在小于或等于采样周期的平均速率 上循环的,它可能偶而采用多达两个采样周期来通过该循环。这对 于异常处理是有用的。

DSP74包含一个与德克萨斯仪器公司的74181设备兼 容的算术逻辑单元(ALU)。

A/V/CD控制器/协处理器32还有一个密致盘DMA控 制器。这一CD控制器包含下述功能块:一个简单的同步串行接口 (用于I2S和与之类似的)、一个CD ROM块解码器及一条 DMA通道。该机构允许向系统存储器34传送一个串行数据流, 或者直接地,或者首先通过一个块解码器。在内部块解码器出现问 题或丧失能力时,允许使用一个外部块解码器。在完成了一次传送 而使传送长度计数器到达零时,可以生成一个中断。

密致盘控制器同步串行接口支持著名的菲利浦数据格式。菲利 浦数据格式中有一个时钟信号、一条字选择线及一条数据线。字选 择比数据领先一个时钟节拍,并且数据是与一个32位数据的最高位 (MSB)对齐的。字选择线上的低电平表示左数据而字选择线上的高 电平则表示右数据。同步串行接口还支持菲利浦块解码器输出公式 。其中位的次序是颠倒的,并且第一位是与数据的第一位对齐的。 字选择格式可以是菲利浦数据格式、索尼数据格式或Matsushita数 据格式之一。

CD驱动控制器72还有一个块解码器。该块解码器与 2352字节扇区的起始点同步,执行解密、并计算EDC(错误 检测码)以检测错误。它在两种模式中操作:在首部以后传送 2048个数据字节的短模式,或者在传送同步模式以后的2340字 节的长模式。这样允许必要时读取首部与纠错数据。首部的大小可 编程为4或12字节以支持CD驱动器模式1及CDI/XA模式 2格式1,但首部匹配只在主要的4字节首部上执行。模式2格式 只在长模式中操作及抽取所需要的数据时受到支持。首部匹配是在 传送的第一个扇区上执行的,以保证正在读取的是正确的数据。所 要求的首部值必须编程进首部寄存器中。如果所执行的是一次多扇 区传送,则在第一扇区之后不再发生匹配。

通常,正常的传送是以短模式执行的,而在检测到错误时则采 用长模式,以便操作软件能试图纠正它。多扇区传送是通过给出要 传送的长字的总数的一个计数来加以支持的。错误会放弃多扇区传 送。错误可以有下述形式:不可靠的数据、EDC错误、及无同步 。有可能查询解码器来确定其当前状态。CD驱动控制器还有一 个DMA接口。该DMA接口每次能将2个16位字传送进系统存 储器34。它能取来自内部块解码器的输出,或者来自同步串行接 口的输出。它有一个向上通过系统存储器34的地址计数器。DMA 接口有一个用于从串行接口直接传送的传送长度计数器。在“永久 性模式”中,DMA地址寄存器在一个32千字节缓冲器内环绕, 并忽视计数器。这对于CD声频数据或者诸如“全动作视频”解压 缩之类的实时与数据处理可能是有用的。每当地址指针环绕缓冲器 一次,便生成一个CPU30中断。

参见图5,其中示出了“封锁”一个盒式存储器的一种替代方 法。如前所述,图1A与3的地址加密器54提供了一种防止非授 权使用程序盒式存储器14的“封锁”方法。另一种方法是在盒式 存储器中放置一个音调发生微控制器100,如图5所示。盒式存 储器中包含一个程序ROM50(这在上面结合图1A的文字中已 描述过)、一个地址解码器102(在描述地址加密器54的文字 中已一般性地描述过)及微控制器100。

地址解码器与典型的盒式存储器中的地址解码器非常相似,只 是加上了该地址解码器102只在微控制器100经由一条启动线 103启动地址解码器102时才生成一个芯片选择57信号到程 序ROM50。微控制器100通过禁止地址解码器102来“封 锁”盒式存储器14。

微控制器100是与CPU30及地址解码器102电路连通 的,如图5中所示。系统复位时,微控制器100禁止地址解码器 102,借此“封锁”盒式存储器。微控制器100监视地址总线 31b或另一条总线上的一个地址或地址序列。当微控制器100 检测到地址的正确序列时,它便启动地址解码器102,借此“解 锁”盒式存储器。

微控制器100通过生成一序列音符来确认正确的地址序列, 这些音符是用户可以听到并且由CPU30检测到的。试按任何一 个键都会使微控制器100产生一个音调。系统单元以下述数种方 法之一便能检测该音调:可用分立的音调检测电路(象一般电话机 电路中所用的DTMF音调解码器)来检测该音调,或者用一个A /D转换器数字化该音调再用FFT算法加以分析来检测所生成的 音调签名。在后一种情况中,DSP74执行分析并通知CPU30已 播放了正确的音调或音调组,指出盒式存储器现已解锁。

参见图6,其中示出了用于“封锁”一个盒式存储器的第三替 代方案。图1A与3的地址加密器54及图5的微控制器100提 供了两种用硬件操纵地址与数据线来“封锁”存储设备的不同方法 。然而,并非所有存储设备都是以这一方法与系统接口而能用硬件 来保护各个程序的。例如,某些存储设备具有可拆卸的存储介质。 从而,需要一种不同的方法来“封锁”没有地址与数据线的存储设 备,诸如一块预编程的软盘或一块预编程的CD驱动器盘。这种设 备没有地址或数据线;因此它们不能用地址加密器或选择性封锁的 芯片选择加以封锁。

封锁这种设备的一种技术便是利用本发明的系统10的CPU30 及DSP74操作码不兼容这一事实。即编译成在CPU30上执 行的代码不能直接在DSP74上执行,反之亦然。

图6中示出了利用不兼容的操作码的一种封锁设备。图6示出 包含至少两块数据的一个程序ROM的存储器映象200,这两块 为:(1)一块能够在DSP74上执行但不能在CPU30上执 行的可执行代码(图6中的BLOCK1 202),以及(2) 一块能在CPU30上执行但是经过压缩或加密,不首先解压缩或 解密也不能在CPU30上执行的代码(图6中BLOCK2 204 )。这两块代码可放置在任何类型的存储设备中;程序盒式存储器 14、或预编程的软盘、或预编程的CD驱动器软盘,诸如此类。

第一代码块BLOCK1 202是一小块可在DSP74上 执行的代码。它是一个只有四种功能的小程序:(1)确认一个存 储设备的存在,(2)将第二数据块从存储设备加载进系统RAM 34,(3)解压缩或解密第二存储块BLOCK2 204成可 由CPU30执行的格式,以及(4)令CPU执行该可执行的代 码。步骤(2)与(3)可以通过读取一小节数据、解压缩或解密 之、将得出的代码写入存储器,而并行地执行。

第二块代码BLOCK2 204是一能在CPU30中执行 的较大的应用代码块,但是代码是已经压缩或加密的。因此,在加 载进第二块BLOCK2 204时,它是不能被DSP74或 CPU30执行的。将可执行代码置入著名的运行长度编码(RLE) 格式是压缩与加密第二块代码BLOCK2 204中的数据的一 种方法,只加密第二块的一种方法是对数据执行著名的筛格密码( picket fence cipher),从而以可以解密的方法交换数据中的字节 。加密数据可以简单到只将一个字节的上半字节与下半字节交换或 者复杂到用任何一种著名的加密方法,使得用正常的顺序方式访问 时,代码是读不懂的。这与上文中描述的打乱地址线,而由于一条 指令的长度是一个字节以上而打断一个正常的顺序取代码操作的方 法不同。

不需要压缩或加密整个的第二代码块BLOCK2 204; 足够的代码必须加以压缩或加密以防止非特许的设备执行该应用程 序。其余未压缩与未加密的数据可放置在可选的BLOCK3 206 中。例如图形数据不需要压缩。作为另一个例子,如果高层程序执 行代码完全加密了,则所有的子例程便不需要压缩。

图1A与1B的系统能够解锁上述三个盒式存储器。然而, 带有兼容的CPU而没有兼容的DSP的系统是不能执行该应用程 序的,这是因为CPU不能执行存储设备上的每一块代码:第一块 BLOCK1 202具有完全与CPU30不兼容的操作码,而 第二块BLOCK2 204则已经被压缩或加密使之不能执行 。从而,“封锁”了存储器设备。

图1A与1B的系统以下述方法“解锁”存储器设备。首先, CPU30初始化系统10并检验是否存在一个存储器设备,诸如 一个CD驱动器22。如果检测到一个存储器设备,CPU30便 将第一块BLOCK1 202从存储器设备加载到系统RAM34中 。然后,CPU30令DSP74执行从存储器设备传送到系统 RAM34的代码。执行第一块代码BLOCK1 202导致 DSP74通过在该设备上执行检验和而保证一个存储器设备的存 在,将第二块存储器BLOCK2 204从该存储器设备复制到 系统RAM34中,并将第二块数据BLOCK2 204解压缩 或解密成可在CPU30上执行的格式,最后,DSP74令CPU 去执行从第二块数据BLOCK2 204变化来的可执行代码, 从而启动应用程序。

这一方法的优点是存储器设备中不需要附加的硬件;只需要象 上面所述那样将第一与第二块数据放入存储器设备即可。因此,这 种两块法适用于程序盒式存储器14以及预编程的软盘及CD驱动 器盘。

在替代的方法中,BLOCK2 204可以是可执行的,但 是具有必须以特殊的方式加载的格式。这种格式的一个例子便是著 名的。EXE格式的可执行文件。这种数据块是可执行的,但只有 在可执行部分是正确地加载进存储器的前提下。实现这一“封锁” 要求将一个只能在DSP74上执行的加载程序放在BLOCK1 202中。这一加载程序访问BLOCK2 204,加其加载进 存储器34中,定位可执行部分,然后将控制传递给CPU30。

虽然本发明已通过对其实施例的描述说明了本发明,而且虽然 已经相当详尽地描述了这些实施例,但申请人的意图并非想用这些 细节来限制所附的权利要求书的范围。对于熟悉本技术的人员而言 ,其它的优点与改型已是显而易见的了。例如,图3的地址加密器 54可以与上面讨论的两块封锁法结合使用。此外,图1A的封锁 控制电路56可与图5的一般地址解码器102组合而不需要音调 生成微控制器100。因此,本发明在广义上不限于特定的细节、 代表装置及方法,以及所示出与描述的示例性实例。从而,可以抛 开这些细节而不脱离申请人的总的创造性概念的精神或范围。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈