аппаратное обеспечение, специализированное для растровых индексов? - PullRequest
3 голосов
/ 15 сентября 2010

Это просто вопрос из любопытства.Допустим, у вас есть таблица базы данных с 1-м строками в ней, и вы хотите часто выполнять запросы, такие как поиск мужского или женского пола, американского или неамериканского, избирателя или не избирателя и т. Д., Очевидно, очень эффективно определить индекс растрового изображениядля таблицы, в которой каждый бит представляет одно или-или условие.

Однако, чтобы выполнить запрос, вам все равно придется просмотреть (вероятно) весь индекс, выполняющий бит, и выбрать соответствующие строки.

Мой вопрос: есть ли какое-то хранилище, оптимизированное для растровых изображений, так что бит "каналы" предварительно создается в аппаратном обеспечении?Я предполагаю что-то похожее на вязание спицами, поднимающее перфокарты из старой системы библиотечного каталога.Другими словами, вместо того, чтобы проходить строка за строкой в ​​ячейках памяти, микросхема может просто извлекать совпадающие строки в электронном виде, потому что есть аппаратные соединения для каждого битового канала?У меня такое чувство, что мозг должен работать примерно так.Если я думаю о «всех синих объектах», а затем ограничиваю их «всеми длинными синими объектами», а затем «всеми длинными синими тяжелыми объектами», мой мозг делает это без особых усилий, и я уверен, что он не сканирует все известные мне объектыо каждый раз.Кажется, что, возможно, есть некоторые нейроны, которые обеспечивают пути для различных измерений для быстрого поиска.Мне просто интересно, есть ли что-нибудь подобное в мире аппаратного обеспечения?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 сентября 2010

Зачем изобретать что-то, что уже есть?

Адресно-ориентированная память

0 голосов
/ 16 сентября 2010

Вы, конечно, могли бы подключить некоторую логику для выполнения этого (например, используя программируемые логические устройства ), но вам потребуется большое количество логических элементов и соединений, что делает такие схемы, вероятно, дорогостоящими для построения для больших баз данных. ,

Например, нужно было бы встроить соответствующую логику (выбран ли этот бит? Какое требуемое значение?) В каждую «строку», давая вам один сигнал (выбранный / не выбранный) на строку.

В таком случае у вас будет логическая схема с одним миллионом выходных линий (сообщающая, какие записи были выбраны), которые вам, возможно, в какой-то момент придется «сериализовать» в любом случае, например. когда вы взаимодействуете с шиной PCI внутри компьютера (то есть сначала передаете результат для записи 0, затем 1 и т. д. или передаете номера выбранных записей).

Поскольку побитовые операции в современных ЦП бывают быстрыми (для логических операций, таких как побитовые and, or и 'xor', требуется всего один тактовый цикл), вы, вероятно, не добьетесь больших успехов, используя такую ​​пользовательскую схему, оптимизированное программное обеспечение (не говоря уже о разработке и тестировании аппаратного обеспечения), если у вас нет особого варианта использования.

...