Intel 8086 – один из самых влиятельных из когда-либо созданных компьютерных чипов. Он создал архитектуру x86, доминирующую в современных настольных и серверных компьютерах. Я занимался реверс-инжинирингом 8086 на основе фотографий кристаллов, и в данной статье я опишу реализацию регистрового файла (набора регистров).
Кристалл 8086. Отмечено место хранения регистров. Верхние регистры используются блоком интерфейса шины для доступа к памяти, а нижние регистры общего назначения используются исполнительным блоком. Буфер команд – это 6-байтная очередь, состоящая из заранее запрошенных команд.
На фото дано изображение процессора 8086 под микроскопом. Виден металлический слой сверху чипа, под которым прячется кремний. Расположенные по внешнему краю соединительные провода соединяют площадки на кристалле с 40 внешними контактами чипа.
Рамкой обведены пятнадцать 16-битовых регистров 8086 и шесть байтов очереди предварительного запроса команд (предвыборки кода). Регистры занимают значительную часть кристалла, хотя в сумме их наберётся всего на 36 байт. Из-за ограничений по площади у первых микропроцессоров было относительно небольшое количество регистров. Для сравнения, у современных чипов процессоров есть килобайты регистров и мегабайты кэшей.
8086 был одним из самых ранних микропроцессоров, реализовавших предвыборку кода, однако у Motorola 68000 (1979) немного раньше появился буфер предвыборки на 4 байта. В мейнфреймах предвыборка существовала у IBM Stretch (1961), CDC 6600 (1964) и IBM System/360 Model 91 (1966).
Количество регистров у современного процессора подсчитать сложно. Единственное точное число, найденное мною, содержалось в книге “Анатомия высокоскоростного микропроцессора” (1997), подробно описывающей процессор AMD K6. Из-за переименования регистров у современных процессоров физических регистров гораздо больше, чем архитектурных (тех, что видны программисту), а количество физических регистров в документации не указывается. У K6, кроме восьми регистров х86 общего назначения, было 16 микроархитектурных рабочих регистров для переименования.
У процессоров с поддержкой AVX-512 есть 32 512-битовых регистра, то есть для одной этой функции зарезервировано 2 кБ регистров. В таких случаях размер регистров подсчитать ещё сложнее. Что до размера кэша, то у передовых процессоров его объём доходит до 77 МБ.
Как регистры реализуются в кремнии
Начну с описания того, как 8086 создаётся из N-МОП транзисторов. Затем объясню, как делается инвертор, как при помощи инверторов хранятся одиночные биты, и как делается регистр.
8086, как и другие чипы той эпохи, создавались на основе транзисторов типа N-МОП. Эти чипы состояли из кремниевой подложки, в которую при помощи диффузии внедряли примеси из мышьяка или бора, формировавшие транзисторы. Находящиеся над кремнием проводники из поликремния формировали вентили транзисторов и соединяли все компоненты друг с другом. Находившийся ещё выше металлический слой содержал дополнительные проводники. Для сравнения, современные процессоры используют технологию КМОП, комбинирующую N-МОП и P-МОП транзисторы, и содержат множество металлических слоёв.
На схеме ниже показан инвертор, состоящий из N-МОП транзистора и резистора. При низком входном напряжении транзистор выключен, поэтому подтягивающий резистор подтягивает выход вверх. При высоком входном напряжении транзистор включается, соединяет землю и выход, подтягивая выход вниз. Таким образом входящий сигнал инвертируется.
На самом деле, подтягивающий резистор в вентиле N-МОП представляет собой транзистор особого рода. Работающий в режиме обеднения транзистор ведёт себя, как резистор, будучи при этом более компактным и эффективным.
На схеме показано, как из транзистора и резистора получается инвертор. На фото показана реализация на чипе. Металлический слой удалён, чтобы было видно кремний и поликремний.
На фото выше видно, как физически сделан инвертор у 8086. Розоватые участки – это кремний с примесями, делающими его токопроводящим, а линии медного цвета – это поликремний сверху. Транзистор появляется там, где поликремний пересекается с кремнием. Поликремний формирует вентиль транзистора, а участки кремния с двух сторон дают исток и сток. Большой прямоугольник поликремния формирует подтягивающий резистор между +5 В и выходом. Таким образом, схема чипа совпадает со схемой инвертора. Подобные цепи можно рассмотреть под микроскопом и подвергнуть реверс-инжинирингу.
Строительный блок регистра – два инвертора в цепи обратной связи, хранящих один бит (см. ниже). Если на верхнем проводнике 0, правый инвертор выдаст 1 на нижний проводник. Затем левый инвертор выдаст 0 на верхний проводник, завершая цикл. Таким образом цепь оказывается стабильной и «помнит» 0. И наоборот, если на верхнем проводнике 1, она превратится в 0 на нижнем проводнике, и обратно в 1 на верхнем. В итоге цепь может хранить 0 или 1, формируя однобитную память.
У 8086 два спаренных инвертора хранят в регистре один бит. Схема стабильно находится в состоянии 0 или 1.
К паре инверторов добавляются три транзистора, чтобы получилась пригодная для использования ячейка регистра. Один транзистор выбирает ячейку для чтения, второй выбирает ячейку для записи, третий усиливает сигнал при чтении. В центре схемы ниже два инвертора хранят бит. Для чтения бита ток подаётся на красную шину. Это соединяет выход инвертора с разрядной шиной через усиливающий транзистор. Для записи бита ток подаётся на красную шину, соединяющую разрядную шину с инверторами. Подавая высокотоковые сигналы 0 или 1 на разрядную шину (и, соответственно, на хранящийся бит), мы заставляем инверторы переключаться на нужное значение. Отметьте, что разрядная шина используется и для чтения, и для записи.
В других процессорах используются несколько другие ячейки для хранения регистров. 6502 использует дополнительный транзистор в цепи обратной связи инвертора, чтобы разбивать цепь при записи нового значения. Z80 пишет одновременно в оба инвертора, что «облегчает» изменение, однако требует наличия двух проводников для записи. У 8086 есть усиливающий транзистор в каждой ячейке регистра для чтения, а другие процессоры считывают выходной сигнал с обоих инверторов и используют внешний дифференциальный усилитель для усиления сигнала. Базовая ячейка регистра 8086 состоит из 7 транзисторов (7Т), что больше, чем в типичной статичной ячейке RAM, использующей 6 или 4 транзистора, однако она использует только одну разрядную шину, а не две разных. Динамическая память (DRAM) работает гораздо эффективнее, и использует один транзистор и конденсатор, однако без обновления данных они будут утеряны.
Принципиальная схема хранящей бит ячейки регистра. Регистровый файл делается из массива таких ячеек.
Регистровый файл состоит из матрицы ячеек регистров, подобных описанному выше. Ширина матрицы составляет 16 ячеек, поскольку в регистрах хранятся 16-битные значения. Каждый регистр расположен по горизонтали, поэтому шина чтения или записи выбирает все ячейки определённого регистра. 16 вертикальных разрядных шин формируют единую шину, поэтому все 16 битов в выбранном регистре читаются и записываются параллельно.
На фото ниже показан увеличенный регистровый файл 8086 общего назначения, и видна матрица регистровых ячеек: 16 столбцов и 8 строк, 8 16-битных регистров. Затем дано увеличение одной регистровой ячейки в файле. Объясню, как реализована эта ячейка.
Фото кристалла 8086 с увеличением нижнего регистрового файла (восьми 16-битовых регистров), а потом и отдельной регистровой ячейки. Чтобы было видно кремниевые структуры, металлический и поликремниевый слои удалены.
8086 делается из кремния с примесями и поликремниевых проводников с металлическими проводниками сверху. На левом фото ниже показаны вертикальные металлические проводники регистровой ячейки. Отмечены земля, питание и проводники разрядной шины (оставшийся проводник пересекает регистровый файл, но не контачит с ним). На фото справа металлический слой растворён, чтобы было видно поликремний и кремний. Шины чтения и записи – это горизонтальные поликремниевые проводники. Поскольку у чипа только один металлический слой, в регистрах для вертикальных шин используется металл, а для горизонтальных – поликремний, чтобы они не пересекались друг с другом). Сквозные соединения металла и кремния видны как более яркие круги на фото с металлом и как кружки на фото с кремнием.
Ячейка хранения регистра. На фото слева показан металлический слой, а справа – соответствующие слои поликремния и кремния.
На диаграмме ниже показано соответствие физической схемы регистровой ячейки с принципиальной. Инверторы состоят из транзистора А и В и регистров. Транзисторы C, D и E формируются отмеченными кусочками поликремния. Разрядная шина не видна, поскольку располагается в металлическом слое. Отметьте, что схема ячейки памяти сильно оптимизирована для минимизации размера. Также отметьте, что транзистор А гораздо меньше других. У инвертора А довольно слабый выходной ток, поэтому разрядная шина может преодолеть его при записи.
Регистровая ячейка от 8086 с соответствующей схемой
Поддержка 8-битных регистров
Если тщательно изучить кристалл, видно, что некоторые регистровые ячейки имеют немного другую структуру. Слева расположена регистровая ячейка, которую мы уже обсудили, а справа – пара регистровых ячеек с двумя шинами записи вместо одной. На левом фото шина записи пересекает кремний в обеих регистровых ячейках. На правом фото шина «правой записи» пересекает кремний в правой части, однако проходит между участками кремния в левой. И наоборот, шина «левой записи» пересекает кремний с левой стороны и проходит между участками кремния справа. Таким образом, одна шина управляет записью правого бита, а другая – левого. В 16-битном регистре таким образом можно отдельно записывать перемежающиеся 8-битные части.
Регистровая ячейка на кристалле повторяются не единообразно – каждая вторая ячейка является зеркальным отражением предыдущей. Это увеличивает плотность регистровой ячейки – шина питания, идущая между двумя зеркальными ячейками, может питать их обе (то же касается и земли). Зеркальные повторения уменьшают количество требуемых шин питания и земли в два раза.
Хотя на блок-схемах обычно нарисовано, как 16-битные регистры делятся на левую и правую половины, в реальном исполнении биты с каждой из сторон чередуются, вместо того, чтобы всегда хранить первую 8-битовую часть слева, а вторую – справа. Такая реализация упрощает иногда возникающую задачу перемены местами двух половин 16-битного слова. Один из таких случаев – чтение или запись памяти без выравнивания. Другой – операция АЛУ, использующая верхнюю часть регистра – например, АН. Для перемены местами битов между правой и левой половинами потребовалось бы тянуть длинные проводники между всеми битами половин слов. Однако при чередующемся расположении для перемены местами двух половин слова требуется поменять местами каждую пару соседних битов, для чего длинные проводники не нужны. Иначе говоря, чередующееся расположение регистров 8086 облегчает задачу расположения проводников для перемены местами двух половин слова.
Две пары ячеек памяти с разными цепями. У ячеек слева одна шина записи, а справа – отдельные шины записи для левых и правых битов.
Почему у некоторых регистров две шины записи, а других – одна? Причина в том, что у 8086 16-битные регистры, однако к четырём из них можно обращаться и как к 8-битным, как показано ниже. К примеру к 16-битному аккумулятору А можно обращаться как к 8-битному AH (старшая часть аккумулятора) и 8-битному AL (младшая часть) регистрам. Реализация регистров с двумя шинами контроля записи позволяет вести запись в каждую половину регистра отдельно.
Если бы регистровый файл поддерживал только 16-битные регистры вместо 8-битных, процессор мог бы работать, но менее эффективно. Записи в 8-битные половины производились бы путём чтения всех 16 бит, изменения 8-битной половины и записи всех 16 бит. В результате вместо доступа к одному регистру обращение шло бы к трём. При этом регистровому файлу не нужно как-то особо поддерживать чтение 8 бит, поскольку ненужную половину можно просто игнорировать.
Регистры общего назначения в процессоре 8086. Регистры A, B, C и D можно делить на две 8-битных половины.
Многопортовые регистры
Пока что мы рассмотрели восемь «нижних регистров» общего назначения. У 8086 есть также семь «верхних регистров», используемых для доступа к памяти, включая печально известные сегментные регистры. У этих регистров схема работы более сложная, многопортовая, позволяющая одновременно вести несколько процессов чтения и записи. К примеру, многопортовый регистровый файл позволяет прочесть счётчик программы, сегментный регистр и записать другой сегментный регистр – и всё это одновременно.
Приведённая ниже блок-схема отличается от большинства блок-схем для 8086, поскольку показывает реальную физическую реализацию процессора, а не ту, что представляет себе программист. В частности, на диаграмме показано два «регистра внутренних коммуникаций» среди регистров модуля интерфейса шины (справа) вместе с сегментными регистрами, совпадающими с 7 регистрами, которые можно рассмотреть на кристалле. Временные регистры, показанные ниже, физически являются частью АЛУ, поэтому в данной статье я их не рассматриваю.
В книжке “Разработка современных процессоров” обсуждаются сложные системы регистров в процессоре, начиная с 2000-х годов. Там написано, что сложность цепей быстро выходит за рамки трёх портов, а в некоторых передовых процессорах существуют регистровые файлы с 20 или более портами.
Многопортовая регистровая ячейка ниже создана на основе той же схемы из двух инверторов, однако у неё есть три разрядных шины (а не одна, как в предыдущем случае) и пять управляющих шин (вместо двух). Три шины чтения позволяют читать содержимое регистровой ячейки по любой из трёх разрядных шин, а две шины записи позволяют разрядной шине А или С вести запись в регистровую ячейку.
На первый взгляд, регистровый файл 8086 выглядит как однородный набор регистров, однако при тщательном рассмотрении видно, что каждый регистр оптимизирован в зависимости от его функции. Некоторые из них – простые 16-битные регистры, и расположены наиболее компактно. К другим 16-битным регистрам можно обращаться как к двум 8-битным, что требует ещё одной управляющей шины. У наиболее сложных регистров есть два-три порта для чтения и один-два для записи. В каждом случае физическая реализация регистровой ячейки тщательно разработана так, чтобы занимать как можно меньше места, в связи с чем форма транзисторов часто получается сложной. Инженеры Intel сжимали схему расположения регистров как можно сильнее, чтобы уместить их все на доступной им площади.
У верхних регистров есть разное количество портов для чтения и записи: два регистра с 3 шинами чтения и 2 шинами записи, один регистр с 2 шинами чтения и 2 шинами записи, четыре регистра с 2 шинами чтения и 1 шиной записи. Три первых регистра – это, вероятно, счётчик программы, непрямой временный регистр и временный регистр операнда. Последние четыре – вероятно, сегментные регистры SS, DS, SS и ES. Также там есть три регистра буфера предварительной выборки команд, каждый с одной шиной для чтения и одной для записи.
Процессор 8088, использовавшийся в оригинальных компьютерах IBM PC, был практически идентичен 8086, кроме того, что у него была 8-битная внешняя шина вместо 16-битной – так стоимость системы получалась меньше. Размер буфера предварительной выборки у 8088 был 4 байта вместо 6 – вероятно, потому, что 4-х байт было достаточно для более медленной шины памяти 8088-го.
В отличие от 8086, регистры предварительной выборки у 8088 поддерживают независимую запись в 8-битные половинки (похоже на регистры A, B, C и D 8088-го, только эти ячейки выглядят по-другому). Всё потому, что 8088 запрашивал команды по одному байту за раз, а не по одному слову, из-за узкой шины. Поэтому регистры предварительной выборки должны поддерживать побайтовую запись, в то время, как 8086-й поддерживает предварительную выборку по словам.
Файл верхних регистров, состоящий из десяти 16-битных регистров. На фото видно кремний и поликремний. Вертикальные красные линии – остатки удалённого металлического слоя. Кликабельно.
Заключение
Хотя 8086 процессору уже 42 года, он до сих пор оказывает значительное влияние на современные компьютеры, поскольку архитектура х86 до сих пор очень часто используется. Регистры 8086 до сих пор существуют в современных компьютерах х86, хотя сегодня они уже имеют длину в 64 бита, а кроме этих регистров существует и множество других.
Кристалл 8086-го очень интересно изучать, поскольку его транзисторы можно рассмотреть под микроскопом. В своё время это был сложный процессор, поскольку на нём расположено 29 000 транзисторов, однако достаточно простой для того, чтобы отследить все цепи и понять, как они работают.
доцента кафедры системного программирования и
компьютерной безопасности
Гродненского госуниверситета имени Янки Купалы
канд. техн. наук Ливак Елены Николаевны
по
дисциплине «Организация и функционирование компьютерных систем»
Описание
набора регистров микропроцессора
§
Сегментные регистры
Программная модель
микропроцессора содержит 32 регистра, которые можно разделить на две группы:
16 пользовательских регистров;
16 системных регистров.
Заметим, что в данном
курсе мы изучаем и применяем только пользовательские регистры.
Системные регистры
будут использоваться при изучении дисциплин «Системное программное обеспечение»
и «Методы защиты компьютерной информации».
Пользовательские регистры
Пользовательскими
регистры называются потому, что программист может их использовать при
разработке программ.
К пользовательским
регистрам относятся:
восемь 32-битных регистров, которые могут
использоваться программистами для хранения данных и адресов (регистры общего
назначения)
cs, ds, ss, es, fs, gs
регистр состояния (регистр флагов)
регистр управления (регистр указателя
команды)
Обратим внимание,
наклонной разделительной чертой обозначены части одного большого 32-разрядного
регистра. Они могут использоваться в программе как отдельные объекты.
Благодаря этому поддерживается работоспособность программ, написанных
для младших 16-разрядных моделей микропроцессоров фирмы Intel, начиная с i8086.
Регистры микропроцессоров i486 и Pentium в основном 32-разрядные. Размерность у
них больше, что и отражено в их обозначениях — они имеют приставку e
(Extended).
Регистры общего
назначения
Регистры общего
назначения физически находятся в микропроцессоре внутри арифметико-логического
устройства (АЛУ), поэтому их еще называют регистрами АЛУ.
(Accumulator register) —
Применяется
для хранения промежуточных данных.
(Base register) —
Применяется для хранения базового адреса
некоторого объекта в памяти.
(Count register) —
Применяется
в командах, производящих некоторые повторяющиеся действия.
Его
использование часто неявно и скрыто в алгоритме работы соответствующей команды.
Например, команда организации цикла
loop кроме передачи управления команде, находящейся по некоторому адресу, анализирует
и уменьшает на единицу значение регистра ecx/cx.
(Data register) —
Применяется для хранения промежуточных
данных.
Обратим внимание,
можно использовать только весь регистр целиком (например, ), младшую 16-битную часть (например, ) и 8-битные части этих регистров
(например,
!!! Старшие 16 бит
этих регистров как самостоятельные объекты недоступны.
используются для поддержки так
называемых цепочечных операций, то есть операций, производящих последовательную
обработку цепочек элементов (можно сравнить со строками в языке
(Source Index register) —
Этот регистр в цепочечных операциях
содержит текущий адрес элемента в цепочке-источнике (первоначальная строка).
(Destination Index register) —
Этот регистр в цепочечных операциях
содержит текущий адрес в цепочке-приемнике (результирующая строка).
предназначены
для работы со стеком.
(Stack Pointer register) —
Содержит
указатель вершины стека в текущем сегменте стека.
(Base Pointer register) — регистр указателя базы кадра стека.
Регистр предназначен для организации
произвольного доступа к данным внутри стека.
Сегментные
регистры
В программной модели
микропроцессора имеется шесть сегментных регистров:
cs, ss, ds, es, gs, fs.
Их существование
обусловлено спецификой организации и использования оперативной памяти:
микропроцессоры Intel в любом режиме работы (реальный режим, защищенный режим)
поддерживают сегментную модель организации оперативной памяти.
Она заключается в том,
что микропроцессор аппаратно поддерживает структурную организацию программы в
виде частей (фрагментов), которые называются сегментами. Соответственно,
такая организация памяти называется сегментной.
Сегментные
регистры предназначены для того, чтобы указать на сегменты, к которым программа
имеет доступ в конкретный момент времени.
Фактически в этих
регистрах содержатся адреса ячеек памяти, с которых начинаются соответствующие
сегменты.
Микропроцессор
поддерживает следующие типы сегментов.
1. Сегмент кода (содержит
команды программы).
Для доступа к этому
сегменту служит регистр
(code segment register) —
Он содержит адрес
сегмента кода, к которому в данный момент имеет доступ микропроцессор.
2. Сегмент данных (содержит обрабатываемые программой данные).
(data segment register) — сегментный регистр данных.
3. Сегмент стека (область памяти, называемая стеком).
Работу
со стеком микропроцессор организует по следующему принципу: последний
записанный в эту область элемент выбирается первым (
(stack
segment register) —
Он содержит адрес
сегмента стека.
4. Дополнительные сегменты данных.
Если программе
недостаточно одного сегмента данных, то она имеет возможность использовать еще
три дополнительных сегмента данных.
Адреса дополнительных
сегментов данных должны содержаться в регистрах
es, gs, fs (extension data segment registers).
дополнительный сегментный регистр данных или экстракодов (
появились
два дополнительных регистра (следующие
буквы в латинском алфавите после
При
использовании дополнительных сегментов данных их адреса требуется указывать с
помощью специальных префиксов переопределения сегментов в команде (например,
Содержит информацию о состоянии микропроцессора.
eflags/flags (flag register) —
eflags/flags — 32/16
Отдельные биты данного
регистра имеют определенное функциональное назначение и называются флагами.
Младшая часть этого
регистра полностью аналогична регистру flags для i8086.
Флаги регистра eflags/flags
подразделяются на три группы.
Эти
флаги отражают особенности результата исполнения арифметических или логических
операций и могут изменяться после выполнения машинных команд.
Это
позволяет анализировать состояние вычислительного процесса и реагировать на
него (например, с помощью команд условных переходов и вызовов подпрограмм).
флаг переноса (Carry Flag)
флаг паритета (Parity Flag)
вспомогательный флаг переноса (Auxiliary carry Flag)
флаг нуля (Zero Flag)
(1 — результат нулевой; 0 — результат ненулевой)
(1 – старший бит результата = 1; 0 – старший
бит результата = 0)
Флаг переполнения (Overflow Flag)
Используется для фиксирования факта потери
значащего бита при арифметических операциях.
– уровень привилегий ввода-вывода (Input/Output Privilege
Level)
Используется в защищенном режиме работы
микропроцессора для контроля доступа к командам ввода-вывода в зависимости от
привилегированности задачи.
флажок вложенности
задачи (Nested Task)
Используется в защищенном режиме работы
микропроцессора для фиксации того факта, что одна задача вложена в другую
Он находится в 10-м бите регистра eflags и
используется цепочечными командами. Значение флага df определяет направление
обработки в цепочечных операциях: от начала строки к концу (df = 0) или от
конца строки к ее началу (df = 1).
флаг трассировки (Trace Flag)
Предназначен
для организации пошаговой работы микропроцессора.
(Interrupt enable Flag)
Предназначен для разрешения или запрещения (маскирования) аппаратных
прерываний.
(1 — аппаратные прерывания разрешены; 0 — аппаратные прерывания
запрещены)
– флаг возобновления (Resume Flag)
Используется при обработке прерываний от регистров отладки.
(1 – процессор работает в режиме виртуального
8086; 0 – процессор работает в реальном или защищенном режиме)
флаг контроля выравнивания (Alignment Check)
Предназначен для разрешения контроля выравнивания при обращениях к
памяти.
Содержит информацию о состоянии
программы, команды которой в данный момент загружены на конвейер.
eip/ip (Instraction Pointer register) —
Содержит смещение
следующей подлежащей выполнению команды (относительно текущего сегмента
кода).
Регистр eip/ip имеет
разрядность 32/16 бит.
Этот регистр непосредственно недоступен
программисту.
Загрузка и изменение
его значения производятся различными командами условных и безусловных
переходов, вызова процедур и возврата из процедур. Возникновение прерываний
также приводит к модификации регистра eip/ip.
По данным НМИЦ гематологии, каждый год в нашей стране почти 5 тыс. человек нуждаются в трансплантации костного мозга, а получают эту жизненно необходимую медицинскую помощь всего около 1,8 тыс. Во многом этот драматичный дисбаланс связан с недостаточным числом доноров костного мозга и отсутствием развитого единого регистра лиц, готовых ими стать. Эти проблемы давно и на разных уровнях обсуждают чиновники и законодатели, врачи и представители общественных организаций. Рассмотрим в деталях, есть ли подвижки в создании федерального регистра доноров и реципиентов костного мозга, а главное – какая роль отводится НКО в вопросе создания регистра.
Что происходит на федеральном уровне
Работа над нормативными правовыми актами, регулирующими трансплантацию костного мозга и гемопоэтических стволовых клеток (КМиГСК), началась еще несколько лет назад. Еще в 2019 году появился законопроект Минздрава, предусматривающий создание федерального регистра. Пройдя несколько редакций, в мае нынешнего года этот федеральный закон был принят.
Помимо незначительных изменений, касающихся терминов и определений («пересадка» заменена на «трансплантацию», вместо слов «учреждения здравоохранения» в новой редакции мы видим «медицинские организации»), и важных дополнений в ряде статей (нормы, в которых упоминается донорство и трансплантация, теперь касаются не только костного мозга, но и гемопоэтических стволовых клеток), появились еще более важные для врачей и их пациентов новые положения.
Во-первых, в законах о трансплантации и об основах охраны здоровья теперь закреплены не только права доноров КМиГСК, но и тех людей, которые только планируют ими стать. (А права доноров – расширены.)
Во-вторых, данные законы теперь содержат нормы о создании и ведении Федерального регистра доноров и реципиентов КМиГСК и донорского КМиГСК (далее мы будем сокращенно называть его «федеральный регистр»).
О правах доноров
Согласно ст. 12 новой редакции закона РФ от 22.12.1992 №4180-1 «О трансплантации органов и (или) тканей человека» (далее – Закон о трансплантации) донор имеет право на бесплатный проезд к месту изъятия КМиГСК и обратно (за счет бюджетных средств). Человек, который решил стать донором, имеет право также пройти бесплатное медицинское обследование в целях включения в федеральный регистр и ознакомиться с его результатами.
Правда, в Законе о трансплантации прописаны не все права донора, которые стоило бы указать, – так считают Русфонд и Национальный регистр доноров костного мозга имени Васи Перевощикова, два наиболее важных НКО, чью роль в развитии пересадки КМиГСК в России трудно переоценить. По их мнению, доноры должны иметь право не только на бесплатный проезд, но и на бесплатное проживание и питание (в период обследования, подготовки к процедуре изъятия КМиГСК и после нее), на оплату страховки, на полную компенсацию потери зарплаты и на оплату «других необходимых расходов, связанных с донорством».
О создании федерального регистра
Две новые части ст. 47 Федерального закона от 21.11.2011 №323-ФЗ «Об основах охраны здоровья граждан в Российской Федерации» касаются непосредственно организации федерального регистра.
В них перечислены сведения, которые будет содержать федеральный регистр, и указано, что его «создание, ведение и развитие» находится в зоне ответственности Федерального медико-биологического агентства (ФМБА), а утверждение порядка ведения федерального регистра – прерогатива правительства.
Интересно, что исполнительная власть успела принять этот порядок еще до утверждения этого закона палатами парламента и подписания его президентом.
Постановлением Правительства от 12.04.2022 №640 (далее – постановление №640) утверждены Правила ведения федерального регистра, а также установлено, что:
- обмен сведениями в Федеральном регистре будет осуществляться с использованием ЕГИСЗ;
- организации обязаны вносить сведения в федеральный регистр, в том числе те, которые имелись в организации до дня вступления в силу постановления №640.
В постановлении №640 также указывается, что ФМБА совместно с Минцифры в течение полугода со дня вступления в силу данного документа (т. е. с 22 апреля 2022 года) должны обеспечить возможность подачи документов и получения сведений, содержащихся в федеральном регистре, через личный кабинет единого портала госуслуг.
Согласно Правилам ведения федерального регистра его развитие до 2024 года будет определено «дорожной картой», которую ФМБА разработает совместно с Минздравом, Минцифры и другими заинтересованными федеральными органами исполнительной власти и органами управления государственными внебюджетными фондами.
Уже несколько лет длится острая дискуссия о том, на каких условиях в создании государственного федерального регистра может участвовать самый крупный и быстро растущий негосударственный регистр в России – Национальный регистр доноров костного мозга имени Васи Перевощикова (Национальный РДКМ).
Это обнажило системную проблему: вообще все регистры, которые ведутся НКО в этой сфере (или в будущем будут вестись), при создании государственных регистров остаются либо не у дел, либо в очень невыгодном положении: они могут продолжать работать «параллельно» госрегистру (в ситуации гораздо меньших ресурсов и поддержки), а могут сотрудничать с ним – но, увы, не на своих условиях. Если бы взаимодействие федерального регистра и НКО было построено с учетом интересов обеих сторон, с учетом большого вклада, который НКО уже (!) внесли в развитие национальных регистров – тогда этот вклад стал бы основой для быстрого роста и развития государственных регистров. Но для полноценного сотрудничества НКО и государства в создании федерального регистра нужна соответствующая нормативная база.
Однако долгожданные документы, которые должны регулировать «строительство» и работу федерального регистра, вместо разрешения проблем породили еще больше серьезных вопросов.
«Давно очевидно, что требуется развитие отрасли донорства и трансплантации костного мозга, а следовательно, и государственное внимание к ней – регулирование и финансирование. И мы, конечно, приветствуем создание Федерального регистра, – комментирует изменения в нормативной базе Анна Андрюшкина, генеральный директор Национального РДКМ. – Однако неясно, каким он будет: ФМБА, став оператором, отвечает за создание регистра в части программного обеспечения и его последующее функционирование, но мы до сих пор не знаем, какими именно агентство видит регламенты, стандарты работы и концепцию регистра. За финансирование поставщиков информации в федеральный регистр (оплату включения новых потенциальных доноров) ФМБА не отвечает».
Большинство регистров доноров костного мозга в мире было создано по такому принципу: социально активные граждане начинают и развивают их, а государство поддерживает.
В России вопросы создания федерального регистра долго не поднимались на государственном уровне.
До определенного времени лишь несколько медицинских организаций имели свои – очень небольшие – базы данных, которые Русфонд взялся расширить. В 2013 году Русфонд и Первый Санкт-Петербургский государственный медицинский университет им. акад. И.П. Павлова заключили договор о сотрудничестве в организации регистра доноров костного мозга. В НИИ детской онкологии, гематологии и трансплантологии имени Р.М. Горбачевой был создан Петербургский регистр. Затем к базе данных, которая хранится в НИИ, присоединялись другие локальные регистры, семь из которых также финансировал Русфонд. Объединенную базу данных потенциальных доноров администрирует НИИ детской онкологии, гематологии и трансплантологии им. Р.М. Горбачевой, в нее входят 15 локальных российских регистров и регистр Казахстана.
Что мы имеем сегодня
С 2018 года для ускорения развития донорства костного мозга в нашей стране Русфонд вкладывает средства в современные технологии типирования, создание сети региональных НКО-регистров и Национальный РДКМ.
«В настоящее время Национальный РДКМ выступает поисковым центром для некоторых трансплантационных клиник: проводит поиск доноров в России и за рубежом, – объясняет специфику работы регистра Анна Андрюшкина. – Чаще всего поиски оплачивает Русфонд, в случае с Морозовской детской городской клинической больницей оплата поступает от клиники по договору. Если потенциально совместимый донор найден в одном из государственных регистров, то Национальный РДКМ сотрудничает с ним. Так, нескольких доноров мы подобрали в регистре Кировского НИИ, Национальный РДКМ запросил и оплатил счет на активацию».
В Национальном РДКМ состоит 68 398 потенциальных доноров, 69 из которых стали реальными – для 68 российских пациентов и одного иностранца. Национальный РДКМ является членом Всемирной ассоциации доноров костного мозга (World Marrow Donor Association, WMDA) и имеет возможность искать доноров без посредников в ее базе (39 млн доноров из 55 стран). Кроме того, с конца 2021 года Национальный РДКМ включен в базу WMDA, т. е. теперь и наши доноры представлены в ней: в начале мая 2022 года был отправлен трансплантат за рубеж.
Интересная ситуация
С 2010 по 2021 год Русфонд вложил в проект «Русфонд.Регистр» более 1,3 млрд рублей: на создание лабораторий в Санкт-Петербурге и Казани, закупку реагентов и расходных материалов для типирования образцов биоматериалов добровольцев, содержание лабораторий, НКО-регистров и Национального РДКМ, разработку информационной системы для подбора доноров, на поиск потенциальных доноров и пропаганду донорства, а также логистические расходы.
Но согласно постановлению №640 база данных Национального РДКМ может быть передана в федеральный регистр только на безвозмездной основе. Подчеркнем: может быть передана – а может и не быть, потому что вносить в Федеральный регистр сведения обязаны только определенные организации, а НКО к ним не относится.
Получается, что Национальный РДКМ будет вынужден передать сведения, которые собирались много лет, безвозмездно и не может рассчитывать на возмещение своих затрат.
Как организация, осуществляющая привлечение доноров, Национальный РДКМ, конечно, может быть назван поставщиком информации. Вот только его деятельность совсем не ограничивается понятиями «привлечение доноров» и «информирование о донорстве». Сфера деятельности этой НКО гораздо шире.
«Если мы говорим о деятельности Национального РДКМ в качестве поставщика Федерального регистра (а мы не мыслим себя никак иначе: мы же не для себя базу создаем), – поясняет Анна Андрюшкина, – то рассматриваем только полный цикл включения доноров в регистр, т. е. информирование и мотивацию добровольцев, организацию сбора и HLA-типирования их биообразцов, обработку, хранение их данных, логистику. Рекрутинг донора можно считать выполненным в момент включения его данных в Федеральный регистр, но и после этого требуется держать связь с донорами, иметь возможность актуализировать их данные, чтобы доноры были доступны в случае совпадения».
Пользователем информации федерального регистра Национальный РДКМ вообще ни в каком виде сейчас не является. «И это при том, что сегодня он обеспечивает треть выполняемых в РФ неродственных трансплантаций», – напоминает Анна Андрюшкина.
Главный вопрос
На каких условиях НКО могут участвовать в создании государственных регистров? Рассмотрим этот вопрос на примере Национального РДКМ. Еще с 2018 года представители Русфонда и Национального РДКМ пытаются донести свою позицию до ФМБА. На протяжении последних месяцев начался новый виток дискуссии, продиктованный принятием Правил ведения федерального регистра: теперь она ведется и в письмах, и во время обсуждений данной темы на мероприятиях.
В мае Русфонд направил письмо вице-премьеру Татьяне Голиковой с описанием сложившейся вокруг Национального РДКМ ситуации и просьбой содействовать в ее разрешении. «Нас не раз заверяли в том, что доноры Национального РДКМ войдут в общую базу, а условия объединения сможем обсудить с принятием закона о Федеральном регистре», – говорится в обращении. Эмоциональный посыл письма объясним: получается, что договоренности между государством и НКО, которые вырабатывались на протяжении нескольких лет, не выполнены.
Через 10 дней Татьяна Голикова дала распоряжение: ФМБА, Минздрав и Минцифры должны рассмотреть обращение президента Русфонда Льва Амбиндера и до 15 июня доложить правительству (при необходимости с проектом нормативного правового акта) согласованные предложения о результатах рассмотрения указанного обращения.
ФМБА готово к сотрудничеству с Национальным РДКМ – было заявлено в конце мая в ходе совещания ФМБА с представителями Русфонда и Национального РДКМ, организованного в рамках исполнения поручения заместителя председателя правительства РФ Татьяны Голиковой. Однако дальше заверений об этой готовности дело пока не продвинулось. Принципиальных условий у НКО два: получить роль полноправного поставщика и пользователя федерального регистра и финансирование от государства. Национальный РДКМ видит два возможных варианта решения «финансового вопроса»: участие в конкурсах на госзаказ либо государственно-частное партнерство в рамках концессионного соглашения.
Хочется верить, что эта сложная проблема со всеми ее нюансами, возникшими после выхода Правил ведения федерального регистра, будет разрешена в рамках работы Межведомственной группы, в которую приглашены представители Национального РДКМ, и у участников дискуссии хватит мудрости и прагматичности, чтобы справедливо решить все вопросы.
«Мы некоммерческая организация, но претендуем на те же условия, которые получат государственные учреждения, создающие регистр, ФМБА в частности, – говорит Анна Андрюшкина. – Мы сегодня – самый быстрорастущий и самый крупный регистр страны, не говоря о качестве нашего типирования в высоком разрешении. И это 68 398 потенциальных доноров. Было бы неразумно не считаться с этим и не использовать наши ресурсы».
Если же госорганы пойдут навстречу Национальному РДКМ и сотрудничество станет обоюдовыгодным, это создаст прецедент и для других НКО. Сформированная нормативная база обеспечит взаимодействие государства и НКО в деле развития других госрегистров.
Федеральный закон от 01.05.2022 №129-ФЗ «О внесении изменений в Закон Российской Федерации “О трансплантации органов и (или) тканей человека” и Федеральный закон “Об основах охраны здоровья граждан в Российской Федерации”».
15 июля 2022 года на портале проектов нормативных правовых актов был опубликован проект порядка финансового обеспечения расходов донора на бесплатный проезд к месту изъятия КМиГСК и обратно за счет федерального бюджета.
Согласно проекту на 1 сентября 2022 года средний норматив финансовых затрат на обеспечение проезда донора составит 8612 рублей. Предполагается, что оплачиваться будет проезд донора к месту изъятия КМиГСК и обратно без пересадок, а при отсутствии беспересадочного сообщения – проезд с наименьшим количеством пересадок.
При этом рассматривается несколько вариантов проезда донора: железнодорожным транспортом (за исключением поездов и вагонов повышенной комфортности), воздушным (в салонах эконом-класса), морским (в каютах эконом-класса), автомобильным, в том числе такси (кроме машин повышенной комфортности).
СНИЛС, ф. и. о., фамилия, которая была у гражданина при рождении, и информация обо всех случаях изменения фамилии и (или) имени на протяжении жизни гражданина, дата рождения, пол, адрес места жительства, реквизиты документа, удостоверяющего личность, уникальный идентификационный номер, дата включения в Федеральный регистр, результаты медобследования потенциального донора и донора; сведения об изъятии КМиГСК и иные сведения, определяемые правительством.
Обязанность возложена на организации, у которых есть лицензия на выполнение работ (оказание услуг) по трансплантации КМиГСК, и (или) по изъятию и хранению органов и (или) тканей человека для трансплантации, и (или) по забору ГСК, а также по типированию по локусам системы главного комплекса гистосовместимости.
Спешка при принятии Правил ведения федерального регистра заметна даже в том, что в этом постановлении указано старое название министерства, деятельностью которого само правительство и руководит, – Министерство связи и массовых коммуникаций. Напомним, еще в 2018 году оно было переименовано в «Министерство цифрового развития, связи и массовых коммуникаций». К п. 32 документа ошибку исправили – там написано верное полное название.
В настоящее время в эту сеть входят:
- Приволжский РДКМ – совместно с КФУ и Республиканским центром крови Минздрава Республики Татарстан;
- Сибирский РДКМ – совместно с Новосибирским национальным исследовательским государственным университетом;
- Южный РДКМ;
- Башкирский РДКМ – совместно с Республиканским медико-генетическим центром и Республиканской станцией переливания крови.
Согласно Правилам ведения федерального регистра поставщиками информации в Федеральный регистр, кроме организаций, обязанных вносить сведения, являются и организации, осуществляющие привлечение (рекрутинг) доноров, а также Минздрав, ФМБА и заинтересованные органы исполнительной власти.
Партнеры Национального РДКМ – это 160 СМИ, 23 НКО, Казанский (Приволжский) федеральный университет (КФУ), Новосибирский государственный университет, Республиканский медико-генетический центр в Уфе, правительства Татарстана, Башкортостана и ряда других регионов.
Сдача образцов крови на типирование происходит как в государственных, так и в частных клиниках. На безвозмездной основе в проекте участвуют 2 тыс. медицинских офисов «Инвитро», офисы CMD, ДНКОМ и др.
В 2020 году благодаря Национальному РДКМ в лаборатории Института фундаментальной медицины и биологии КФУ была внедрена процедура выделения ДНК из буккального эпителия. С 2021 года, когда к проекту присоединилась Почта России, начал работать онлайн-рекрутинг добровольцев в Национальный РДКМ: наборы для взятия мазка из полости рта доставляются буквально во все населенные пункты России. Логистику почта берет на себя. На данный момент лаборатория в Казани получила около 5 тыс. конвертов с собранным биоматериалом.
Пользователи информации – это организации, осуществляющие работы (услуги) по трансплантации КМиГСК, и (или) по изъятию и хранению органов и (или) тканей человека для трансплантации, и (или) по забору ГСК в составе лицензируемых видов деятельности, те же Минздрав, ФМБА, заинтересованные органы исполнительной власти, а также доноры и реципиенты КМиГСК, использующие информацию о донорах, реципиентах и донорском КМиГСК.